我在使用mutate{dplyr}
函数时遇到问题,目的是为数据框添加新列。我想要一个新的字段为字符类型,并且由其他列(也是字符类型)的排序字的“concat”组成。例如,对于下面的数据帧:R中的dplyr突变 - 添加列作为连续列
> library(datasets)
> states.df <- data.frame(name = as.character(state.name),
+ region = as.character(state.region),
+ division = as.character(state.division))
>
> head(states.df, 3)
name region division
1 Alabama South East South Central
2 Alaska West Pacific
3 Arizona West Mountain
我想用下面的第一个元素得到一个新的列:
"Alamaba_East South Central_South"
我尝试这样做:
mutate(states.df,
concated_column = paste0(sort(name, region, division), collapse="_"))
但我收到错误:
Error in sort(1:50, c(2L, 4L, 4L, 2L, 4L, 4L, 1L, 2L, 2L, 2L, 4L, 4L, :
'decreasing' must be a length-1 logical vector.
Did you intend to set 'partial'?
提前感谢您的帮助!
谢谢保罗的关注!我遵循你的建议,它可以处理你的代码,但是当我尝试*排序*这些词(我的意思是:粘贴(排序(名称,区域,分区),sep ='_'))) 。 (在我的描述中与上面相同的错误)。 –
您必须仔细阅读'sort'的文档,'sort'将一个向量作为输入,并返回排序后的版本。你喂它三个向量,这不是你应该如何使用排序。你想要做什么? –
哦,好的,我明白了(谢谢你的解释!)。在我的真实情况下,我有一个包含3列的数据集。 3列代表来自一组*行动的3个行动。我不再关心这3个动作如何被采用的顺序,所以我想将它们转换成一个变量 - 这个变量的值将保留这3个动作的名称,并且'sort'不打算处理这个命令。 –