Вычислить rowMean для разных столбцов в каждой строке - PullRequest
1 голос
/ 03 июня 2019

У меня есть DF вроде этого:

df <- read.table(text = "x1 x2 x3 x4 x5 x6 start end
                    1 2 2 1 2 3 2 6 
                    2 3 2  5  7  9 1 3 
                    1 9 12 6 1 1 3 6 ", header = TRUE)

start и end указывают количество столбцов, которые должны быть включены в rowMeans.т.е. первая строка: среднее от х2 до х6;Второй ряд: среднее значение от х1 до х3 и т. Д.

Я попытался безуспешно:

df$means <- rowMeans(df[,df$X7:df$X8]) 

1 Ответ

3 голосов
/ 03 июня 2019

В одну сторону с apply:

apply(df, 1, function(x) mean(as.numeric(x[x[7]:x[8]], na.rm = TRUE)))
#[1] 2.000000 2.333333 5.000000

Немного описания. apply будет повторяться по каждой строке. переменная x представляет каждую строку. Итак, мы говорим R поднастроить каждую строку на основе столбцов 7 и 8, а затем вычислить среднее значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...