2013-03-13 4 views
1

Я новичок в R. Мы используем набор данных Trip Advisor для получения таких значений, как «Value», «OverAll», «Rooms» и т. Д. В каждом обозначенном массиве. Результат выглядит следующим образомПреобразование вектора в таблицу в R

Value <- as.numeric(c("4","3","5","2.5")) 

Overall <- as.numeric(c("4","4.5","2","3")) 

Rooms <- as.numeric(c("3","4","2","2")) 

Я хочу, чтобы получить значения в таблице как.

Value 4 3  5  2.5 

Overall 4 4.5 2 3 

Rooms 3 4  2  2 

Я попытался преобразовать его в 2D массив, а также table(Value,Overall,Rooms). Преобразование в массив привело к ошибке, а table() не меняет его в мой требуемый формат. Пожалуйста, объясните, где я ошибаюсь.

ответ

3

Использование rbind

rbind(Value = c("4","3","5","2.5"), 
     Overall = c("4","4.5","2","3"), 
     Rooms = c("3","4","2","2")) 

     [,1] [,2] [,3] [,4] 
Value "4" "3" "5" "2.5" 
Overall "4" "4.5" "2" "3" 
Rooms "3" "4" "2" "2" 

Поскольку вы манипулируете счет здесь (заметки TripAdvisor), то лучше перевести их в цифровой, перед созданием матрицы:

rbind(Value = as.numeric(c("4","3","5","2.5")), 
     Overall = as.numeric(c("4","4.5","2","3")), 
     Rooms =as.numeric(c("3","4","2","2"))) 

     [,1] [,2] [,3] [,4] 
Value  4 3.0 5 2.5 
Overall 4 4.5 2 3.0 
Rooms  3 4.0 2 2.0 
2

Если вы хотите кадр данных:

data.frame(Value=Value,Overall=Overall,Rooms=Rooms) 

Или матрица:

rbind(Value=Value,Overall=Overall,Rooms=Rooms) 

Обратите внимание, что, как вы сделали ваши данные по

Value <- c("4","3","5","2.5") 
Overall <- c("4","4.5","2","3") 
Rooms <- c("3","4","2","2") 

вместо

Value <- c(4,3,5,2.5) 
Overall <- c(4,4.5,2,3) 
Rooms <- c(3,4,2,2) 

вы получаете символы вместо цифр. Теперь, если вы выполняете какое-то моделирование, значения «4», «3» и т. Д. Принимаются как факторы (см. ?factors), поэтому вы не можете иметь такое значение, как 3.5, которое, как я думаю, вы хотели бы иметь, так как у вас также есть 2,5 и т. Д. .

функция table используется для таблиц графов и тому подобное:

table(c("a","b","a","d","abc","b","b")) 
    a abc b d 
    2 1 3 1 
1

могу ли я предложить вам собрать JSON набор данных, то вы можете легко разобрать их, как R является очень сильным для извлечения данных из JSON. Вы можете посетить: https://www.rstudio.com/online-learning/

+1

Поскольку это сообщество программирования, было бы очень полезно разместить код примера с вашим ответом. – Graham

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