相关疑难解决方法(0)

然后,逐行排序在数据框的特定列之间进行连接

(相关问题不包括排序.paste当您不需要排序时,它很容易使用.)

我有一个不太理想的结构表,其字符列是通用的"item1","item2"等.我想创建一个新的字符变量,它是这些列的按字母顺序排列的逗号分隔串联.例如,在第5行中,如果item1 ="milk",item2 ="eggs",item3 ="butter",则第5行中的新变量可能是"butter,eggs,milk"

我写了一个函数f(),它适用于两个字符变量.但是,我遇到了麻烦

  • 使用mapply或其他"矢量化"(我知道它实际上只是一个for循环)
  • 将函数泛化为任意数量的列

任何帮助非常感谢.

df <- data.frame(a =c("foo","bar"), 
                 b= c("baz","qux"))   
paste(df$a,df$b, sep=", ")
# returns [1] "foo, baz" "bar, qux" ... but I want [1] "baz, foo" "bar, qux"

f <- function(a,b) paste(c(a,b)[order(c(a,b))],collapse=", ")
f("foo","baz") 
# returns [1] "baz, foo" ... which is what I want ... how to vectorize?

df$new_var <- mapply(f, df$a, df$b)
df 
#     a   b new_var      <- new_var is not what I want …
Run Code Online (Sandbox Code Playgroud)

sorting row r string-concatenation mapply

5
推荐指数
2
解决办法
1115
查看次数

标签 统计

mapply ×1

r ×1

row ×1

sorting ×1

string-concatenation ×1