мои данные выглядят так:
>dput(mea)
>structure(list(mea = c(NA, NA, NA, NA, 7.5, 19.5)), .Names = "mea",
row.names = c(NA,-6L), class = "data.frame")
и
>dput(m1)
>structure(list(t = c(5e-04, 0.001, 0.0015, 0.002, 0.0025, 0.003,
0.0035, 0.004, 0.0045, 0.005, 0.0055, 0.006, 0.0065, 0.007, 0.0075,
0.008, 0.0085, 0.009, 0.0095, 0.01, 0.0105, 0.011, 0.0115, 0.012,
0.0125, 0.013, 0.0135, 0.014, 0.0145, 0.015), a = c(21L, 13L,
17L, 20L, 19L, 9L, 11L, 16L, 28L, 10L, 14L, 12L, 15L, 27L, 30L,
6L, 29L, 22L, 24L, 5L, 25L, 18L, 26L, 1L, 3L, 4L, 23L, 8L, 7L,
2L), b = c(1, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1,
1, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1), c = c(19L, 25L, 14L,
18L, 3L, 4L, 5L, 6L, 8L, 20L, 17L, 13L, 28L, 2L, 29L, 15L, 26L,
12L, 24L, 16L, 9L, 1L, 22L, 27L, 21L, 23L, 11L, 10L, 7L, 30L),
`4` = c(NA, NA, NA, 18L, 3L, 4L, 5L, 6L, 8L, 20L, 17L, 13L,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA), `17` = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 26L, 12L, 24L, 16L, 9L, 1L, 22L,
27L, 21L, NA, NA, NA, NA, NA), `<NA>` = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_)), class = "data.frame",
row.names = c(NA,30L), .Names = c("t", "a", "b", "c", "4", "17", "<NA>"))
Я пытаюсь сопоставить имена строк mea
с именами столбцов m1
, а затем вычесть соответствующее значение mea
из всего столбца m1
(которое соответствует имени строки mea
).
Что я сделал:
mea1<-na.omit(mea)
idx <- match(rownames(mea1) , 1:ncol(m1))
m5 <- cbind((m1[,idx] - mea[idx,]), m1[,-idx])
Я получил это из заданного здесь вопроса: https://stackoverflow.com/a/18077661/5681674
Это делает трюк, но неправильным способом. Он вычитает второе (последнее значение) mea
из первого сопоставленного столбца m1
и первое значение mea
из второго сопоставленного столбца m1
. Но это должно быть в правильном порядке. Я где-то читал, что cbind
работает от начала до конца, в этом проблема? И как я могу это решить?
Заранее спасибо!
С уважением, Крис
t(mea)
), чтобы упростить - person Emmanuel-Lin   schedule 30.11.2017