我在使用mutate{dplyr}
函数时遇到问题,我的目标是向数据框添加一个新列。我想让新列的类型为字符型,并由其他列中排序后的单词的"concat"组成(这些列也都是字符型的)。例如,对于以下数据框:
> 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'?
提前感谢您的任何帮助!
paste(sort(name, region, division), sep = '_'))
)时,它就无法正常工作了(与我上面描述的错误相同)。 - Marta Karassort
的文档,sort
以向量作为输入,并返回排序后的版本。你给它三个向量,这不是使用sort
的正确方式。你想要做什么? - Paul Hiemstrastates.df.sorted <- as.data.frame(t(apply(states.df, 1, sort))) names(states.df.sorted) <- c("v1", "v2", "v3") new.column = mutate(states.df.sorted, concated_column = paste(v1, v2, v3, sep = '_'))
- Marta Karas