我有在某列一个项目列表对象下列数据表:访问列表成员在数据表中
require(data.table)
col <- c(list(c("A", "B", "C", "D", "E")),
list(c("A", "B", "E", "F")),
list(c("B", "C", "D", "E")))
dt <- data.table(a = c("Jon", "Josh", "Laura"), b = col, c = c(1, 2, 3))
我想什么做的是一列添加到plainstring
dt
其中包含“b”列中的字符串。我试过
dt[, plainstring := b[.I][[1]]]
但这不起作用(我猜是误解了.I)。有任何想法吗?
所需的输出将是
> dt
a b c plainstring
1: Jon A,B,C,D,E 1 A,B,C,D,E
2: Josh A,B,E,F 2 A,B,E,F
3: Laura B,C,D,E 3 B,C,D,E
其中对于每一行i
,dt$plainstring[i]
是一个字符矢量和等于unlist(dt$b[i])
。
如果它是每个列表项'DT [,plainstring的第一个元素:=不公开(lapply(B,'[',1))]'或' dt [,plainstring:= unlist(b)[1],by = c]' – akrun 2014-12-27 17:00:48
@AnandaMahto,谢谢,添加它。这说明了吗? – johnl 2014-12-27 17:08:29
'dt [,plainstring:= toString(unlist(b)),by = c]' – akrun 2014-12-27 17:09:16