【发布时间】:2020-08-13 08:30:06
【问题描述】:
我有一个如下结构的数据框,其中 A/B/C/D 是不同的处理方法:
input <- read.table(text="
filename wavelength A B C D
file1 w1 NA NA 1 2
file1 w2 NA NA 3 2
file1 w3 NA NA 6 2
file2 w1 3 4 NA NA
file2 w2 4 8 NA NA
file2 w3 6 1 NA NA", header=TRUE)
我希望它被转置,以便波长是标题,处理是每次重复文件名的行:
desired <- read.table(text="
filename Method w1 w2 w3
file1 C 1 3 6
file1 D 2 2 2
file2 A 3 4 6
file2 B 4 8 1", header=TRUE)
我已经尝试过 reshape2 中的 melt/cast、data.table 包中的 melt、gather/spread、t - 我能想到的一切。最后的实际数据框将是大约 500 行 x 3500 列 - 所以我不希望调用任何特定的列或方法名称。我的问题似乎主要是我不能在一个值下调用所有方法列并使用它来融化:
colMethods <- myData[, 2:length(myData)]
很多时候我没有收到错误,但 R 返回的数据帧只是波长列表和显示“波长”的列。你们中的任何人会如何处理这个问题?谢谢!
【问题讨论】:
-
@MrFlick 谢谢!效果很好!