我一直试图弄清楚如何应用应用函数plyr就在那里。我稍后会了解到的。但是,我需要帮助。我可以通过实际键入对象名称获得输出,但我试图通过它循环列表。代码如下:
list<-noquote(c("T","AAVL"))
lapply(list,function(i) xts(l.df$i[,-1:-5],order.by=as.POSIXct(rownames(l.df$i))))
如果我只是做xts(l.df$T[,-1:-5],order.by=as.POSIXct(rownames(l.df$T))
我得到了我需要的xts文件。有人可以帮我把没有引号的名字循环到lapply()中,这样我就能为列表中的众多元素做这项工作吗?谢谢!
答案 0 :(得分:0)
有多种方法可以在R中对列表进行子集化。有关更详细的讨论,请参阅https://ramnathv.github.io/pycon2014-r/learn/subsetting.html或http://adv-r.had.co.nz/Subsetting.html。
但是,在您的情况下,问题是美元运算符$
采用固定字符串而不是变量名称。因此myList[["item"]]
和myList$item
是等效的。在您给出的示例中,您尝试查找data.frame的成员名为&#34; i&#34;而不是变量i
引用的成员。您使用的noquote
类纯粹影响字符向量的打印;它对子集化没有影响。
您的代码版本在您的评论中解释时无效。它之所以有效,是因为您现在将名称存储在i
中的列进行了子集化,而不是名为&#34; i&#34;
答案 1 :(得分:0)
我想向数据框中添加 106 个新列,这些列是 df ofcourse 的长度并用零 (0) 填充。在这种情况下,我将如何遍历 i:
geo <- unique(df$geo)
geo
[1] "AL" "AT1" "AT2" "AT3" "BE1" "BE2" "BE3"
for(i in geo) {
df$i <- v(0,length(df)
}
Emil Krabbe 2 分钟前编辑