我写了一个脚本,在用户输入的帮助下读取CSV-Data。例如,当用户输入" 20 40 160"读取CSV文件1,2和3并将其保存为我的全局环境/工作区中的data.frames d20,d40和d160。变量 vel 具有用户输入的值。
现在提出实际问题: 我试图用 vel 变量在循环中操作读取数据。例如:
for (i in vel)
{
newVariable"i" <- d"i"[6]
}
我知道这不是编程的正确语法,但是我想要做的就是用特定数据框 d 编写一个具有特定行的newVariable。 结果应该是:
newVariable20 = d20[20]
newVariable40 = d40[20]
newVariable160 = d160[20]
所以我认为实际的问题是,如何使用循环变量来调用创建的数据框的名称和编写新的变量。
答案 0 :(得分:0)
有几种方法可以做到这一点。一种是将所有数据帧最初存储在列表中。有几种方法可以做到这一点。从空列表开始,然后将每个df放入列表中的下一个位置。请注意,您必须使用list(df),因为数据帧实际上已经是一个列表,如果您不这样做,它就会搞砸。
list_of_df <- list(); list_of_df[1] <- list(df1); list_of_df["df20"] <- list(df2)
这样可以轻松遍历数据帧。如果你想要数据帧2的第4列,你只需要输入
list_of_df[[2]][,4] # Same thing different code list_of_df[["df20"]][,4]
双括号[[2]]为您提供存储在位置2的列表中的值(而不是[2],它为您提供包含值和元数据的列表)。下一个[,4]说从数据框我们得到的值,我们现在想得到第4列的每一行。请注意,这将输出向量而不是数据帧。
或循环:
for(df in list_of_df) { print(df) }