2016-06-06 13 views
8

मैं मूल्य ऑब्जेक्ट के अंदर यह सिर्फ यहाँ वस्तु नाम हीआर के लिए एक स्तंभ नाम पासिंग tidyr

उपयोग करने के लिए कोशिश करता है पढ़ने प्रसार कार्य करने के लिए स्तंभ नाम के साथ एक वस्तु पारित करने के लिए कोशिश कर रहा हूँ, लेकिन इसके बजाय के प्रसार सिर्फ एक खिलौना उदाहरण

library(tidyr) 
d = (1:4) 
n = c("a"," a", "b","b") 
s = c(1, 2,5,7) 

df = data.frame(d,n, s) 

Value <- n 
data_wide <- spread(df, Value , s) 

Error: Key column 'Value' does not exist in input.

नीचे जबकि ठीक काम करता है:

data_wide <- spread(df, n, s) 
d a a b 
1 1 NA 1 NA 
2 2 2 NA NA 
3 3 NA NA 5 
4 4 NA NA 7 
+0

क्या वह स्थान दूसरे "ए" जानबूझकर था? 'एन = सी (" ए "," ए "," बी "," बी ")' – zx8754

उत्तर

12

हम ०१२३७९५१९१५ उपयोग कर सकते हैंतारों के रूप में चर नाम पारित करने के लिए:

library(tidyr) 
# dummy data 
df1 <- data.frame(d = (1:4), 
        n = c("a", "a", "b", "b") , 
        s = c(1, 2, 5, 7)) 

myKey <- "n" 
myValue <- "s" 
spread_(data = df1, key_col = myKey , value_col = myValue) 
3

tidyr कार्यों में data.table

library(data.table) 
dcast(setDT(df), eval(as.name(myValue))~ eval(as.name(myKey)), value.var=myValue) 

गुजर नाम का उपयोग के बारे में, इस answer भी मदद कर सकता है (जो कुछ घंटों वापस पोस्ट किया गया था)।

संबंधित मुद्दे