我在dplyr
的tbl中遇到了一个奇怪的函数:
df <- as.tibble(iris)
i <- colnames(df)[5]
df$new <- df[,i]
由于某种原因,新创建的列new被命名为new.Species
(至少在我View(df)
时),但是应仅命名为new
。...
我不明白为什么会这样。一个令人讨厌的解决方法是将df保存为data.frame,但是我仍然想了解这里发生的情况。
答案 0 :(得分:1)
因为df[,i]
仍然是一栏的小标题。我们需要df[[i]]
:
df$new <- df[[i]]
对于data.frame
,当我们使用[
时,默认情况下为drop = TRUE
(?Extract
),但是在tibble
中,它不会将尺寸降至创建一个向量。我们需要[[
来提取列。