Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中迭代地改变数据帧_R - Fatal编程技术网

在R中迭代地改变数据帧

在R中迭代地改变数据帧,r,R,我收到3个数据帧(培训、验证和测试),其中包含具有相同变量的数据。我不希望它们包含在列表中,这样我就可以将它们整齐地称为trn、vld、和tst,而不是list[[1]]等 我需要从所有数据集中删除变量。有没有一种方法可以在不首先创建列表、迭代然后从列表中重新创建数据帧的情况下进行迭代处理?i、 e.我目前正在做一些事情,比如: trn <- read.csv("training_split_60pct.csv") vld <- read.csv("validation_split_

我收到3个数据帧(培训、验证和测试),其中包含具有相同变量的数据。我不希望它们包含在列表中,这样我就可以将它们整齐地称为
trn
vld
、和
tst
,而不是
list[[1]]

我需要从所有数据集中删除变量。有没有一种方法可以在不首先创建列表、迭代然后从列表中重新创建数据帧的情况下进行迭代处理?i、 e.我目前正在做一些事情,比如:

trn <- read.csv("training_split_60pct.csv")
vld <- read.csv("validation_split_20pct.csv")
tst <- read.csv("test_split_20pct.csv")

# a list of variables to drop
drops <- c("ONE", "TWO", "THREE", "FOUR")

dfRawList <- list(trn, vld, tst)
dfList <- lapply(dfRawList, function(df) df[,!(names(df) %in% drops)])
names(dfList) <- c("trn", "vld", "tst")

trn <- dfList[["trn"]]
vld <- dfList[["vld"]]
tst <- dfList[["tst"]]

trn您可以使用
assign
get
执行此操作。但我建议您使用列表和
lappy
,就像您目前所做的那样

for (df in c("trn", "vld", "tst")){
  assign(df, get(df)[, !names(get(df)) %in% drops])
}

您似乎知道R中的推荐方法。我建议您使用它。@shadow:谢谢您的回答。我对R很陌生,所以道歉。是否有一些例子说明为什么建议这样做?
for (df in c("trn", "vld", "tst")){
  assign(df, get(df)[, !names(get(df)) %in% drops])
}