如何删除R中嵌套数据框中的列?

时间:2015-03-14 07:29:02

标签: r dataframe

据我所知,drop column data frame R df的{​​{1}}有不同的方式

Drop data frame columns by name

How to drop columns by name in a data frame

Remove an entire column from a data.frame in R

现在我的问题:我的数据框中有400 plusnested data frame形式的 df [[1]] SignalIntensity SNR 1 109 6.1823089314 0.8453576915 2 110 10.1727771385 4.3837077591 3 111 7.2922746927 1.0725751161 4 112 8.8984671629 2.3192184908 5 113 9.5910338232 3.7133402249 6 114 7.9850187685 1.5008899345 7 116 7.7893230124 1.3636655582 . . . [[2]] SignalIntensity SNR 1 109 6.1823089314 0.8453576915 2 110 10.1727771385 4.3837077591 3 111 7.2922746927 1.0725751161 4 112 8.8984671629 2.3192184908 5 113 9.5910338232 3.7133402249 6 114 7.9850187685 1.5008899345 7 116 7.7893230124 1.3636655582 . . . [[3]] ID SignalIntensity SNR 1 109 6.1823089314 0.8453576915 2 110 10.1727771385 4.3837077591 3 111 7.2922746927 1.0725751161 4 112 8.8984671629 2.3192184908 5 113 9.5910338232 3.7133402249 6 114 7.9850187685 1.5008899345 7 116 7.7893230124 1.3636655582 . . . and so on..... 个文件。

column 1

我想从所有400 plus个文件中删除column 1column 1标题可能存在或不存在。

我知道使用df [[1]] [, - 1]删除第一个文件的400。为了完成所有文件,我必须重复1次以完成工作。 2中可能有Rdf [[1]] SignalIntensity SNR 1 6.1823089314 0.8453576915 2 10.1727771385 4.3837077591 3 7.2922746927 1.0725751161 4 8.8984671629 2.3192184908 5 9.5910338232 3.7133402249 6 7.9850187685 1.5008899345 7 7.7893230124 1.3636655582 . . . [[2]] SignalIntensity SNR 1 6.1823089314 0.8453576915 2 10.1727771385 4.3837077591 3 7.2922746927 1.0725751161 4 8.8984671629 2.3192184908 5 9.5910338232 3.7133402249 6 7.9850187685 1.5008899345 7 7.7893230124 1.3636655582 . . . [[3]] SignalIntensity SNR 1 6.1823089314 0.8453576915 2 10.1727771385 4.3837077591 3 7.2922746927 1.0725751161 4 8.8984671629 2.3192184908 5 9.5910338232 3.7133402249 6 7.9850187685 1.5008899345 7 7.7893230124 1.3636655582 . . . and so on..... 行代码来执行此操作。怎么样??帮助赞赏。

最终数据框架应该像

{{1}}

1 个答案:

答案 0 :(得分:5)

一个选项是循环:

for(i in seq_along(df)) {
  df[[i]] <- df[[i]][-1]
}

或没有循环,使用lapply:

df2 <- lapply(df, subset, select=-1)