我有一个包含10个不同列数的数据框的列表,我想得到一个包含10个向量的列表。每个向量都是每个数据帧的最后一列。
如果我想从第一个数据框中获取最后一列,我运行:
lapply(list_with_df,function(x) x[,lengths(list_with_df)[1]])
但是每个数据框都有相同的列号。
我试图通过十个数据帧进行“循环”,但是我遇到了错误。如果有人可以帮我解决这个问题我很感激。问候。
答案 0 :(得分:2)
您可以通过lengths
询问列数,而不是使用ncol
。这应该有效:
lapply(list_with_df,function(x) x[,ncol(x)])
修改
只是为了澄清一下:为每个数据框提供相同列号的原因是因为您始终根据lengths
向量的第一个元素选择列号。使用lengths(list_with_df)[1]
。它始终是第一个data.frame