我想从列表中删除部分以将列表减少为具有特定列数的列表中的元素。使用循环从数据帧列表中删除数据帧
这的什么,我试图做一个虚拟的例子:
#1: define the list
tables = list(mtcars,iris)
for(k in 1:length(tables)) {
# 2: be sure that each element is shaped as dataframe and not matrix
tables[[k]] = as.data.frame(tables[[k]])
# 3: remove elements that have more or less than 5 columns
if(ncol(tables[[k]]) != 5) {
tables <- tables[-k]
}
}
另一种选择我想:
#1: define the list
tables = list(mtcars,iris)
for(k in 1:length(tables)) {
# 2: be sure that each element is shaped as dataframe
tables[[k]] = as.data.frame(tables[[k]])
# 3: remove elements that have more or less than 5 columns
if(ncol(tables[[k]]) != 5) {
tables[[-k]] <- NULL
}
}
我越来越
错误表[ [k]]:下标越界。
有没有其他正确的方法?
将修剪到最大。 5列的数量,我想从列表中删除列数不同于5的列中的元素 ,但我会尝试lapply – pachamaltese
@pachamaltese更新后 – akrun
也'长度(表格) – Sotos