有没有办法连接除R?
中最后两个以外的所有前导列值以下是我的数据框的片段
DISEASE Gender Race Freq NEWCOL
Salmonellosis M RACE_LATINO_HISPANIC 1 NA
Salmonellosis F BLACK_AFRICAN_AMERICAN 2 NA
Salmonellosis M WHITE 3 NA
Salmonellosis M WHITE 4 NA
使用concatenate inexcel获得的期望结果
DISEASE Gender Race Freq NEWCOL Concat
Salmonellosis M RACE_LATINO_HISPANIC 1 NA Salmonellosis M RACE_LATINO_HISPANIC
Salmonellosis F BLACK_AFRICAN_AMERICAN 2 NA Salmonellosis F BLACK_AFRICAN_AMERICAN
Salmonellosis M WHITE 3 NA Salmonellosis M WHITE
Salmonellosis M WHITE 4 NA Salmonellosis M WHITE
我尝试在R中粘贴,但无法找到忽略最后两列的方法
此外,我的应用程序中的每次迭代都会更改列数,因此我需要一个忽略最后两列而不是选择几个前导列的函数
答案 0 :(得分:3)
这不是一个优雅的解决方案,但是根据您的数据,您只需使用apply
并通过动态引用列数传递data.frame
,其中最后两列被删除
df = readr::read_table2("DISEASE Gender Race Freq NEWCOL
Salmonellosis M RACE_LATINO_HISPANIC 1 NA
Salmonellosis F BLACK_AFRICAN_AMERICAN 2 NA
Salmonellosis M WHITE 3 NA
Salmonellosis M WHITE 4 NA")
df$Concat = apply(df[,1:(ncol(df)-2)],1,paste,collapse=" ")
答案 1 :(得分:2)
tidyr包有一个方便的<input>
函数来执行此合并:
unite
答案 2 :(得分:1)
或者我们可以使用interaction
df$concat <- interaction(df[head(names(df), -2)], sep= " ")
来自paste
的或base R
df$concat <- do.call(paste, df[head(names(df), -2)])