如何在R中编程循环?
我想在R中编程一个循环来写数据帧 我试过这个:如何在R中编程循环?,r,loops,R,Loops,我想在R中编程一个循环来写数据帧 我试过这个: dts诀窍是使用mget在for循环之外,一次获取所有输入数据帧。然后,在循环中,提取感兴趣的列并分配新的数据集 dts <- c("r1", "r2", "r3") r_RAW_list <- mget(paste0(dts, "_RAW")) for(d in dts){ i <- grep(d, names(r_RAW_list)) temp_rRAW <- r_RAW_list[[i]] temp &l
dts诀窍是使用mget
在for
循环之外,一次获取所有输入数据帧。然后,在循环中,提取感兴趣的列并分配新的数据集
dts <- c("r1", "r2", "r3")
r_RAW_list <- mget(paste0(dts, "_RAW"))
for(d in dts){
i <- grep(d, names(r_RAW_list))
temp_rRAW <- r_RAW_list[[i]]
temp <- data.frame(S = temp_rRAW[["Zeit"]], A = temp_rRAW[["Wert"]])
assign(d, temp)
}
rm(r_RAW_list, temp_rRAW, temp)
ls(pattern = "^r[[:digit:]]$")
#[1] "r1" "r2" "r3"
r1
# S A
#1 -1.2070657 -0.47719270
#2 0.2774292 -0.99838644
#3 1.0844412 -0.77625389
#4 -2.3456977 0.06445882
#5 0.4291247 0.95949406
#6 0.5060559 -0.11028549
#7 -0.5747400 -0.51100951
#8 -0.5466319 -0.91119542
#9 -0.5644520 -0.83717168
#10 -0.8900378 2.41583518
dts您在谈论哪些值?尽管有更好的解决方案,但请尝试将paste0(dt,“\u RAW$Zeit”)
替换为get(paste0(dt,“\u RAW”)$Zeit
。请注意,对象名r1_RAW$Zeit
和表示它的字符向量“r1_RAW$Zeit”
之间存在差异。感谢您抽出时间,但不幸的是,它不起作用。我得到错误:$运算符对原子向量无效
。什么是更好的解决方案?请给我一个提示…注意你的问题不是。例如,什么是r*_原始
对象?这些是从csv文件导入的数据帧。
set.seed(1234)
n <- 10
r1_RAW <- data.frame(Zeit = rnorm(n), Wert = rnorm(n), Other = rnorm(n))
r2_RAW <- data.frame(Zeit = rnorm(n), Wert = rnorm(n), Other = rnorm(n))
r3_RAW <- data.frame(Zeit = rnorm(n), Wert = rnorm(n), Other = rnorm(n))