2016-04-08 28 views
0

Bu oldukça basit bir soru gibi gözüküyor, ancak bir süredir bunun üzerinde kaldım. Herhangi bir yardım için minnettarım.Bir veri çerçevesini ayrı ayrı sütunlarına ayırın

Çok sayıda sütun içeren bir veri çerçevem ​​var ve adları tek tek sütunlarına ayırmak istiyorum.

df = data.frame(a=runif(10),b=runif(10),c=runif(10)) 

df 
#   a   b   c 
# 1 0.2779563 0.1412121 0.81080549 
# 2 0.9312947 0.2074081 0.23266019 
# 3 0.2001917 0.8405399 0.79820815 
# 4 0.3866977 0.4979865 0.57364238 
# 5 0.2644731 0.2714174 0.24188040 
# 6 0.1973641 0.3027505 0.01130486 
# 7 0.7657212 0.1042998 0.69974274 
# 8 0.6424601 0.4570072 0.91322978 
# 9 0.3754743 0.5670109 0.03320163 
# 10 0.5413522 0.2577974 0.48067775 

Temelde kod aşağıdaki satırları tek tek (bir karşı df her sütunun değerleri atamak ne başarabilecek bir işleve sahip istiyorum: Örneğin, aşağıdaki kodda veri çerçevesini df verilen eponymous vektör) -

a <- df$a; b <- df$b; c <- df$c 

a 
# [1] 0.2779563 0.9312947 0.2001917 0.3866977 0.2644731 0.1973641 0.7657212 
# [8] 0.6424601 0.3754743 0.5413522 

Herhangi bir fikir?

cevap

3

Bunun için iyi bir kullanım durumunda hayal etmek biraz zor ama yukarıda @nrussel tarafından gösterildiği gibi sen

list2env(unclass(df), .GlobalEnv) 
+0

kullanabilirsiniz, hatta unclass' 'kullanmaya gerek yoktur. –

+2

"İyi bir kullanım örneği hayal etmek zor" ile anlaşmamı yeterince vurgulayamıyorum. – joran

+0

Teşekkürler, işe yarıyor. @ joran: sahip olduğum tek sorun, sütunların sayısının çok büyük olması ve "df $ x" notasyonlarına başvurmak yerine belirli işlemleri yapmak için tek tek vektörlerin olmasını istiyorum. Biraz uyuşukluk, itiraf etmeliyim. Kullanmamak için bilmem gereken her türlü olumsuzluk, belki de… .. – prateek1592

İlgili konular