我的目标是获取数据框列表,查看数据框的特定列的最大值是否为 0,如果是,则从我的列表中删除该数据框。
现在我正在遍历列表的名称。鉴于这是 R,必须有更好的方法。我觉得我需要应用一些功能lapply()
才能做到这一点。我也考虑过ddply()
,但我认为这可能是矫枉过正。这是我到目前为止所拥有的:
# Make df of First element
myColumn <- rep ("ElementA",times=10)
values <- seq(1,10)
a <- data.frame(myColumn,values)
# Make df of second element
myColumn <- rep ("ElementB",times=10)
values <- rep(0,10)
b <- data.frame(myColumn,values)
# Bind the dataframes together
df <- rbind(a,b)
#Now split the dataframes based on element name
myList <- split(df,df$myColumn)
# Now loop through element lists and check for max of 0 in values
for (name in names(myList)) { # Loop through List
if (max(myList[[name]]$values) == 0) { # Check Max for 0
myList <- myList[[-names]] # If 0, remove element from list
} # Close If
} # Close Loop
Error in -names : invalid argument to unary operator
我已经在循环外测试了我的代码,这一切似乎都有效。
任何帮助是极大的赞赏。谢谢!