data.table 循环设置

问题描述 投票:0回答:1

说我有2个

df

library(data.table)

df <- data.table(x = letters[1:2])
df_1 <- data.table(x = letters[3:4])

并且我想使用

set
在两个
df
中创建一个新列(但使用现有列作为输入)

names_df <- c('df', 'df_1')
for(i in names_df)
{
  set(get(i), j = 'y', value = toupper(.$x))
}

上面会给我错误:

Error in toupper(.$x) : object '.' not found

我求助于这篇文章并使用了

.$
,但当然没有任何效果。任何帮助将不胜感激。

r loops data.table
1个回答
0
投票

您可能想使用

get

for(i in names_df){
  set(get(i), j = 'y', value = toupper(get(i)$x))
  }

> df
   x y
1: a A
2: b B
> df_1
   x y
1: c C
2: d D
© www.soinside.com 2019 - 2024. All rights reserved.