我是一个相当新的 R 用户(MATLAB 转换),我正在尝试使用我为数据集提供的列名来命名我的数据集中的变量。
假设我有一个名为 Z 的数据框,其中包含我命名如下的三列。
Header <- c("Date", "Time", "Data")
colnames(Z) <- Header
有没有一种简单的方法可以将这些列名称转换为矢量名称,以便当我在命令行中键入“数据”时,第 3 列中的值会出现(这样我就可以在脚本中轻松调用这些名称)?
提前致谢!
最佳答案
这是一个使用您的数据附加和分离函数的示例。我相信这对于交互式使用来说是可以的,但这不是编程的最佳实践。可能根本不推荐使用它,我相信我从未使用过它!
Z <- data.frame(matrix(rpois(9, 80), ncol = 3, nrow = 9))
head(Z)
> head(Z)
X1 X2 X3
1 69 69 69
2 80 80 80
3 69 69 69
4 103 103 103
5 65 65 65
6 81 81 81
# Use different names for each column!
Header <- c("Date_1", "Time", "Data_2")
colnames(Z) <- Header
head(Z)
Date_1 Time Data_2
1 69 69 69
2 80 80 80
3 69 69 69
4 103 103 103
5 65 65 65
6 81 81 81
attach(Z)
Date_1
[1] 69 80 69 103 65 81 84 70 93
Time
[1] 69 80 69 103 65 81 84 70 93
detach(Z)
# Do not forget to detach!
Time
Error: objeto 'Time' no encontrado
也许另一个选择是使用 with:
with(Z, Time)
# [1] 91 81 81 87 82 72 81 74 85
with(Z, quantile(Time))
# 0% 25% 50% 75% 100%
# 72 81 81 85 91
或者只是子集化每个变量。
# Subsetting keeping attributes
Z[2]
Z["Time"]
attributes(Z["Time"])
# $names
# [1] "Time"
# $class
# [1] "data.frame"
# $row.names
# [1] 1 2 3 4 5 6 7 8 9
# Subsetting droping attributes
Z$Time
Z[["Time"]]
attributes(Z[["Time"]])
# NULL
关于R:使用数据框列名称作为向量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21440905/