2015-09-16 2 views
1

У меня есть dataframe df, для которого я хочу сделать гистограмму некоторых строк. я могу выбрать строки с df["row1",] и я получаю (показать 4 из 114 столбцов):'x' должно быть числовым для гистограммы строки кадра данных

 X3432_re X232_fa X212_lf X634_fv 
row1 5.1  4.3  3.7  3.7 

Однако, когда я пытаюсь hist(df["row1",]) я получаю ошибку 'x' must be numeric. Я попробовал hist(as.vector(df["row1",])), но получил ту же проблему. Как я могу сделать гистограмму строки данных?

+0

Попробуйте 'исторы (as.numeric (ДФ [«row1»,])) ' – zx8754

+0

Попробуйте' hist (t (df ["row1",])) '. Он будет работать, если значения действительно являются числовыми. – AntoniosK

ответ

3

df["row1",] по-прежнему будет data.frame, поэтому hist(df["row1",]) не будет работать по умолчанию (так как hist требует наличия вектора).

Теперь предположение, что все столбцы может быть принуждено к числовому я подозреваю, что это будет работать, так как числовой атомный вектор будет создан:

hist(as.numeric(df["row1",])) 
+0

На самом деле, он не будет работать, даже если все столбцы являются числовыми. 'is.numeric' должен в значительной степени всегда возвращать' FALSE' в кадре данных (или в одной строке кадра данных). – joran

+0

Это прекрасно работает: 'as.numeric (data.frame (a = c (1,2), b = c (1,2), c = c (1,2)) ['1',]) [ 1] 1 1 1''. То же самое для data.frame В настоящее время я работаю с факторами, целыми числами и удвоениями. – LyzandeR

+1

Нет, я не имел в виду, что ваше решение не сработает, я имею в виду, что 'hist (d [1,])' не будет работать, даже если все столбцы являются числовыми, что делает ваш первый абзац немного вводящим в заблуждение. Очевидно, что если вы явно принуждаете к числовому, это будет работать нормально. – joran