如何在 R 中插入数据框的每一行?
How can I interpolate each row of a data frame in R?
我有类似的东西:
wavelength plt1 plt2
1 404.502 0.01451395 0.01394186
2 411.006 0.01538372 0.01455814
...
74 989.878 0.25398372 0.25955116
75 996.382 0.25714419 0.25986279
interpolated1 <- approx(mydata$wavelength, y=NULL, method = "linear", n = 371)
适用于一列。
我想转置,然后对每一行进行插值以获得与原始值相同范围内的 371 个值,例如
apply(mydata_transposed, 1, approx)
,没有抛出错误,但 returns 没有插值。我想指定我的插值间隔。
提前致谢。
ting = "wavelength plt1 plt2
404.502 0.01451395 0.01394186
411.006 0.01538372 0.01455814
989.878 0.25398372 0.25955116
996.382 0.25714419 0.25986279"
data <- read.table(text = ting, header = TRUE)
interpolated1 <- apply(data, 2, function(x) approx(x, y=NULL, method = "linear", n = 371)$y)
dim(interpolated1)
# [1] 371 3
head(interpolated1)
# wavelength plt1 plt2
# [1,] 404.5020 0.01451395 0.01394186
# [2,] 404.5547 0.01452100 0.01394686
# [3,] 404.6075 0.01452805 0.01395185
# [4,] 404.6602 0.01453511 0.01395685
# [5,] 404.7129 0.01454216 0.01396185
# [6,] 404.7657 0.01454921 0.01396684
我有类似的东西:
wavelength plt1 plt2
1 404.502 0.01451395 0.01394186
2 411.006 0.01538372 0.01455814
...
74 989.878 0.25398372 0.25955116
75 996.382 0.25714419 0.25986279
interpolated1 <- approx(mydata$wavelength, y=NULL, method = "linear", n = 371)
适用于一列。 我想转置,然后对每一行进行插值以获得与原始值相同范围内的 371 个值,例如
apply(mydata_transposed, 1, approx)
,没有抛出错误,但 returns 没有插值。我想指定我的插值间隔。
提前致谢。
ting = "wavelength plt1 plt2
404.502 0.01451395 0.01394186
411.006 0.01538372 0.01455814
989.878 0.25398372 0.25955116
996.382 0.25714419 0.25986279"
data <- read.table(text = ting, header = TRUE)
interpolated1 <- apply(data, 2, function(x) approx(x, y=NULL, method = "linear", n = 371)$y)
dim(interpolated1)
# [1] 371 3
head(interpolated1)
# wavelength plt1 plt2
# [1,] 404.5020 0.01451395 0.01394186
# [2,] 404.5547 0.01452100 0.01394686
# [3,] 404.6075 0.01452805 0.01395185
# [4,] 404.6602 0.01453511 0.01395685
# [5,] 404.7129 0.01454216 0.01396185
# [6,] 404.7657 0.01454921 0.01396684