2015-02-24 3 views
0

Быстрый вопрос здесь относительно назначения имен значениям в векторе условно. У меня есть простой вектор в R с девятью значениями (средняя температура), которые я ищу, чтобы назначить вектор символов на основании того, больше или меньше значения 65. Если значение меньше 65, я хотел бы назначить HDD для значения в виде имени строки (или имени столбца), и если значение больше 65, я хотел бы присвоить значение CDD.Именование значений условно в R

x <- c(44.3, 49.3, 52.5, 46.2, 35.19, 67.4, 79.4, 13.4, 54.3) 

Вот что я пытаюсь вместе с некоторыми вариациями этого кода, а также, но я не получил в любом месте. Я также попытался несколько циклов, но это не моя сильная сторона (новый кодер).

x.rownames <- ifelse(x<65,(row.names(x) = "HDD"),(row.names(x) = "CDD")) 

Я получаю сообщение об ошибке:

Error in `rownames<-`(x, value) : 
    attempt to set 'rownames' on an object with no dimensions 

Любые идеи?

Благодаря

+1

'? Row.names': все кадры данных имеют атрибут имен строк, вектор символов длины число строк без дубликатов и отсутствует значения. Ваш 'x' не является df. – Metrics

ответ

1

Вы просто получаете немного путают с синтаксисом R

names(x) <- ifelse(x<65,(names(x) = "HDD"),(names(x) = "CDD")) 

X представляет собой вектор, а не DF, поэтому он не имеет названия строк. R поддерживает именованные векторы, поэтому вы можете установить имена в виде имен (x)

+0

'names (x) <- ifelse (x <65," HDD "," CDD ")' вероятно, будет лучше, поскольку вызов 'names()' в 'ifelse' действительно не подходит. – MrFlick

+0

Отлично! Благодарю. Да, похоже, я уже думал об этом и добавлял вместо него имена row.names. Я очень ценю вашу помощь от вас обоих. – user3720887

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