How to drop columns in a nested data frame in R?
As i know there are different ways to drop a column of a data frame in R like
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
Now My question: I have a data frame say df having 400 plus files in the form of nested 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.....
I want to remove column 1 from all the 400 plus files. The column 1 header may be present or absent.
I know to use df[[1]][,-1] to remove column 1 of first file. In order to do for all the files i have to repeat it 400 or so times to make the work done. There may be 1 or 2 line of code in R to do this. How?? help appreciated.
Final data frame is expected to be like
df
[[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.....
One option is with a loop:
for(i in seq_along(df)) {
df[[i]] <- df[[i]][-1]
}
Or without the loop, using lapply:
df2 <- lapply(df, subset, select=-1)
链接地址: http://www.djcxy.com/p/70912.html
上一篇: Pandas DataFrame.assign参数
下一篇: 如何删除R中的嵌套数据框中的列?
