从R

时间:2017-02-16 18:41:15

标签: r data.table

我希望我把这个问题说得对,我甚至不确定如何说出我的问题,这可能是我找不到答案的原因之一。

考虑具有多个字符串向量的data.frame。我想构建另一个变量,它将两个向量组合在一起,不知道它们的顺序。

例如,请考虑以下data.frame

df <- data.frame(var1 = c('string1', 'string2', 'string3'),
                 var2 = c('string3', 'string4', 'string1')
                 )

我希望第一个和第三个元素的变量相同,例如:

c('string1, string3', 'string2, string 4', 'string1, string3')

我想象最好使变量/向量成为两个组件变量的列表,但我显然对任何解决方案都是开放的。我试图根据这个问题创建一个列表变量来做我想要的但没有运气:

Create a data.frame where a column is a list

如果可能的话,我希望以可扩展到2列以上的方式执行此操作,并且可以有效地运行数百万行,尤其是在存在data.table方法的情况下。

感谢您的帮助!

编辑:一个蹩脚的例子,说明我如何使用一个不起作用的forloop但你明白了这一点:

for (i in 1:nrow(df)) {
  df$var.new[i] <- paste(sort( c(df$var1[i], df$var2[i])))
}

0 个答案:

没有答案