Почему я не могу переименовать столбцы таблицы? - PullRequest
1 голос
/ 26 июня 2019

Я наткнулся на странную функцию в таблице dplyr:

df <- as.tibble(iris)
i <- colnames(df)[5]

df$new <- df[,i]

По какой-то причине недавно созданный столбец new называется new.Species (по крайней мере, когда я View(df)), однако он должен называться new only ....

Я не понимаю, почему это происходит. Непростое решение - просто сохранить df как data.frame, но я все же хотел бы понять, что здесь происходит.

1 Ответ

1 голос
/ 26 июня 2019

Потому что df[,i] - это все еще столбец с одним столбцом. Нам нужно df[[i]]:

df$new <- df[[i]]

С data.frame, когда мы используем [, по умолчанию drop = TRUE (?Extract), но в tibble, он не будет отбрасывать размеры для создания вектора. Нам нужно [[, чтобы извлечь столбец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...