Я вызываю apply(data, 2, function(x) {...})
, где data
- это матрица. Есть ли способ для функции узнать имя столбца, значения которого присутствуют в x
? Или, возможно, есть еще одна функция для выполнения одной и той же задачи?
Применять матрицу по столбцу - каким образом получить имя столбца?
Ответ 1
Один из распространенных способов борьбы с этим состоит в том, чтобы перебирать сами имена столбцов:
m <- matrix(runif(16),4,4)
colnames(m) <- letters[1:4]
sapply(colnames(m),function(x){mean(m[,x])})
a b c d
0.4720319 0.4992337 0.5026318 0.3514267
Ответ 2
Вы можете использовать sapply
на colnames(data)
:
set.seed(21)
Data <- matrix(rnorm(10),5,2)
colnames(Data) <- c("one","two")
sapply(colnames(Data), function(x) sum(Data[,x]))
# one two
# 3.987540 -2.010875
colSums(Data)
# one two
# 3.987540 -2.010875