gpt4 book ai didi

r - 将列名与 R 中的列数据连接起来(使用 data.table)

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

我有一个data.table如下,

library(data.table)

dt<-structure(list(varx = c(0L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L
), vary = c(0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L)), class = c("data.table",
"data.frame"), row.names = c(NA, -10L))
dt
varx vary
1: 0 0
2: 1 0
3: 0 0
4: 0 0
5: 1 1
6: 0 0
7: 1 1
8: 0 0
9: 0 0
10: 0 0

我正在尝试获得以下输出:

dt 
varx vary
1: varx_n vary_n
2: varx_y vary_n
3: varx_n vary_n
4: varx_n vary_n
5: varx_y vary_y
6: varx_n vary_n
7: varx_y vary_y
8: varx_n vary_n
9: varx_n vary_n
10: varx_n vary_n

使用以下代码:

dt[,lapply(.SD, function(x){
ifelse(x==1,paste0(.SD,"_y"),paste0(.SD,"_n"))
})]

但是,我没有得到想要的输出。请帮忙。

最佳答案

使用 Map 和一些 factor 标签将每个变量名称与所需的 n/y 标签配对。

dt[, Map(paste, names(dt), lapply(.SD,factor,labels=c("n","y")), sep="_")]

# varx vary
# 1: varx_n vary_n
# 2: varx_y vary_n
# 3: varx_n vary_n
# 4: varx_n vary_n
# 5: varx_y vary_y
# 6: varx_n vary_n
# 7: varx_y vary_y
# 8: varx_n vary_n
# 9: varx_n vary_n
#10: varx_n vary_n

关于r - 将列名与 R 中的列数据连接起来(使用 data.table),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50674252/

25 4 0