为什么不能重命名tbl的列?

时间:2019-06-26 17:17:57

标签: r dplyr

我在dplyr的tbl中遇到了一个奇怪的函数:

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

df$new <- df[,i]

由于某种原因,新创建的列new被命名为new.Species(至少在我View(df)时),但是应仅命名为new。...

我不明白为什么会这样。一个令人讨厌的解决方法是将df保存为data.frame,但是我仍然想了解这里发生的情况。

1 个答案:

答案 0 :(得分:1)

因为df[,i]仍然是一栏的小标题。我们需要df[[i]]

df$new <- df[[i]]

对于data.frame,当我们使用[时,默认情况下为drop = TRUE?Extract),但是在tibble中,它不会将尺寸降至创建一个向量。我们需要[[来提取列。