gpt4 book ai didi

r - 连接列名和列值

转载 作者:行者123 更新时间:2023-12-01 18:46:33 25 4
gpt4 key购买 nike

我有以下内容

library(data.table)

anid <- c(1,2,3,4)
agroup <- c("m", "m", "f", "f")
anothergroup <- c("a","c", NA, "c")
avalue <- c(11, 6, 17, 3)
mygoal <- c("agroup:m_anothergroup:a","agroup:m_anothergroup:c","agroup:f_anothergroup:NA","agroup:f_anothergroup:c")

不幸的是,我在示例中错过了这一行

dt <- data.table(anid, agroup, anothergroup, avalue)

基本上我想使用函数创建 mygoal 列的值,但不幸的是我卡住了。我想使用类似的东西创建 mygoal 列

dt[, mygoal:= lapply(...)]

进入函数的列数可能会有所不同,但尽管如此,我知道它们,但必须能够将列作为字符向量提供给函数。在上面的示例中,列“agroup”和“anothergroup”用于为列“mygoal”创建值。

再次感谢任何提示

汤姆

最佳答案

cols <- c("agroup", "anothergroup")
DT[, mygoal := do.call(paste,
c(lapply(cols, function(x) paste(x, get(x), sep=":")),
sep="_"))]
# anid agroup anothergroup avalue mygoal
#1: 1 m a 11 agroup:m_anothergroup:a
#2: 2 m c 6 agroup:m_anothergroup:c
#3: 3 f NA 17 agroup:f_anothergroup:NA
#4: 4 f c 3 agroup:f_anothergroup:c

关于r - 连接列名和列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25349171/

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