зацикливание столбцов с полуколонными именами столбцов - PullRequest
2 голосов
/ 11 мая 2011

У меня есть следующая переменная и датафрейм

welltypes <- c("LC","HC")
qccast <- data.frame(
  LC_mean=1:10,
  HC_mean=10:1,
  BC_mean=rep(0,10)
)

Теперь я хочу видеть только выбранные мной типы скважин (в данном случае это LC и HC, но они также могут быть разными).

for(i in 1:length(welltypes)){
qccast$welltypes[i]_mean
}

Это не работает, я знаю. Но как мне зациклить эти столбцы?

И это должно происходить по-разному, потому что welltypes имеет неизвестный размер.

Ответы [ 3 ]

3 голосов
/ 11 мая 2011

Второй аргумент $ должен быть именем столбца первого аргумента. Я не запускал код, но ожидал, что welltypes[i]_mean будет синтаксической ошибкой. $ аналогично [[, поэтому вы можете использовать paste для создания строки и подмножества имени столбца с помощью [[.

Например:

qccast[[paste(welltypes[i],"_mean",sep="")]]

В зависимости от остальной части вашего кода, вы можете сделать что-то подобное вместо этого.

for(i in paste(welltypes,"_mean",sep="")){
  qccast[[i]]
}
2 голосов
/ 11 мая 2011

Вот еще одна стратегия:

qccast[ sapply(welltypes, grep, names(qccast)) ]
   LC_mean HC_mean
1        1      10
2        2       9
3        3       8
4        4       7
5        5       6
6        6       5
7        7       4
8        8       3
9        9       2
10      10       1
0 голосов
/ 12 мая 2011

Еще один простой способ доступа к данным welltypes

qccast[,paste(welltypes, '_mean', sep = "")]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...