我正在尝试从函数中由data.frame
自动生成的字符中分配“R
列名称”。我知道我之后可以用colnames()
更新列名,但我觉得我应该知道如何直接进行。
示例:
test <- iris[1:3, 1:2]
i <- 3
hat_char <- paste0("hat", i)
x <- cbind(test, hat_char = 3:1)
x
Sepal.Length Sepal.Width hat_char
1 5.1 3.5 3
2 4.9 3.0 2
3 4.7 3.2 1
Hoped-for output
Sepal.Length Sepal.Width hat3
1 5.1 3.5 3
2 4.9 3.0 2
3 4.7 3.2 1
由于存在大量相关但不同且更基本的问题,这似乎很难找到。
修改
忘了提,但强烈希望base R
解决方案。
答案 0 :(得分:1)
使用setNames
base R
cbind(test, setNames(list(3:1), hat_char))
# Sepal.Length Sepal.Width hat3
#1 5.1 3.5 3
#2 4.9 3.0 2
#3 4.7 3.2 1
如果我们将其分配给同一数据集
test[hat_char] <- 3:1
如果我们使用dplyr
library(dplyr)
test %>%
mutate(!! hat_char := 3:1)
# Sepal.Length Sepal.Width hat3
#1 5.1 3.5 3
#2 4.9 3.0 2
#3 4.7 3.2 1