gpt4 book ai didi

r - 访问数据表中的列表成员

转载 作者:行者123 更新时间:2023-12-02 09:34:50 25 4
gpt4 key购买 nike

我有以下数据表,其中某一列中有一项列表对象:

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

其中对于每一行 idt$plainstring[i] 是一个字符向量,等于 unlist(dt$b[i]).

最佳答案

从您的更新来看,您似乎想要这样的东西:

dt[, plainstring := vapply(b, toString, "")][]
# 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

b 列减少到长度为三的字符向量。

dt[, plainstring]
# [1] "A, B, C, D, E" "A, B, E, F" "B, C, D, E"

如果您希望不带空格,那么在上面的 vapply() 调用中使用 paste() 会更合适。

vapply(b, paste, "", collapse = ",")

关于r - 访问数据表中的列表成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27669407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com