It is not possible to change the column names printed by "collect" to be anything but the default names

I am trying to use gather in the tidyr package, but I cannot change the names of the derived columns from the default names. For instance:

 df = data.frame(time = 1:100,a = 1:100,b = 101:200) df.long = df %>% gather("foo","bar",a:b) colnames(df.long) 

gives me

 [1] "time" "variable" "value" 

but shouldn't be "time" "foo" "bar" ?

I can change "foo" and "bar" to whatever I want, and it still gives me "variable" and "value" as the names of my columns.

Reference. What am I missing here?

+5
source share
1 answer

It could be a mistake. If you want to try more, for example, melt () from data.table, you can do the following:

 # Need to load both data.table and reshape2 # For more information, could check ?data.table library(reshape2); library(data.table) setDT(df) df %>% melt(id.vars = "time", variable.name = "foo", value.name = "bar") > First 20 rows time foo bar 1: 1 a 1 2: 2 a 2 3: 3 a 3 4: 4 a 4 5: 5 a 5 6: 6 a 6 7: 7 a 7 8: 8 a 8 9: 9 a 9 10: 10 a 10 11: 1 b 11 12: 2 b 12 13: 3 b 13 14: 4 b 14 15: 5 b 15 16: 6 b 16 17: 7 b 17 18: 8 b 18 19: 9 b 19 20: 10 b 20 
+2
source

Source: https://habr.com/ru/post/1203752/


All Articles