R:使用数据框列名称作为向量名称

标签 r

我是一个相当新的 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/

相关文章:

r - 插入符号中的并行执行列车失败,未找到函数

Emacs ESS 版本的 Clear Console

lattice() 包中的旋转轴标签 - R

r - 在 R 中,不能在包 Vignette 文件中编出相同的代码。 "list"对象不能被强制为整数类型

r - 根据两个协变量级别的对应关系选择数据帧的行

r - 如何在 R 中匹配两个具有约束的数据框?

r 从特定工作表批量读取 xls 文件

R通过快捷方式读取RDS文件

r - 如何在 R 中复制月度周期图

r - 累计总计表 R