2016-10-26 4 views
0

Я новичок в R. У меня есть таблица, которая выглядит следующим образом:R: не извлекая нужные столбцы из таблицы

> means 
     as er op rt 
a 34.66667 3.5 87 4 
b 22.66667 4.5 9 5 
c 5.00000 7.5 6 9 
d 6.00000 0.5 6 3 
e 3.00000 8.0 7 89 

и другой, который выглядит следующим образом:

> table 
    exp ctrl 
1 as er 
2 rt op 

I хотите, чтобы извлечь значения из столбцов «означает», которые указаны в колонке «ехр» из «таблицы», как это:

> means_exp <- means[, table$exp] 

в реальной ситуации бот h таблицы будут намного больше, поэтому я не хочу просто указывать имена столбцов для извлечения один за другим.

Однако, с этой командой я получаю это:

> means_exp 
     as er 
a 34.66667 3.5 
b 22.66667 4.5 
c 5.00000 7.5 
d 6.00000 0.5 
e 3.00000 8.0 

, но я должен получить столбцы «как» и «RT», а не «как» и «эр»

Любая идея почему извлекаются неправильные столбцы?

Спасибо!

Вот dput первой таблицы:

structure(c(34.6666666666667, 22.6666666666667, 5, 6, 3, 3.5, 
4.5, 7.5, 0.5, 8, 87, 9, 6, 6, 7, 4, 5, 9, 3, 89), .Dim = c(5L, 
4L), .Dimnames = list(c("a", "b", "c", "d", "e"), c("as", "er", 
"op", "rt"))) 

и второй:

structure(list(exp = structure(1:2, .Label = c("as", "rt"), class = "factor"), 
    ctrl = structure(1:2, .Label = c("er", "op"), class = "factor")), .Names = c("exp", 
"ctrl"), class = "data.frame", row.names = c(NA, -2L)) 
+0

Попробуйте 'средства [, as.character (table $ exp)] ' – akrun

+0

Это работает! Благодарю. Не могли бы вы объяснить, почему, пожалуйста? – arielle

+0

Каковы столбцы таблицы? Являются ли они факторами? Проверьте 'str (table)'. – jogo

ответ

1

Причина OP получили различные столбцы с колонкой «ехр» в «таблице» является classexp. Это будет factor класс, поэтому преобразование в character является опцией.

means[,as.character(table$exp)] 

The factor получает принуждать целое, и мы получаем

as.integer(factor(table$exp)) 
#[1] 1 2 

means[,factor(table$exp)] 
#  as er 
#a 34.66667 3.5 
#b 22.66667 4.5 
#c 5.00000 7.5 
#d 6.00000 0.5 
#e 3.00000 8.0 

Таким образом, он выбирает первые 2 колонки вместо 'как' и 'КТ'

+1

Отличное объяснение, спасибо! – arielle

Смежные вопросы