R:attach()如果变量中有空格怎么办?

时间:2014-04-19 11:50:16

标签: r

我的数据集非常简单(clouds.txt)。它具有以下格式。

"seeded clouds" "unseeded clouds"
129.6 26.1
31.4 26.3
2745.6 87
489.1 95
etc. etc.

我使用了以下代码。

clouds = read.table("materials/clouds.txt", header=TRUE)
attach(clouds)

我现在如何使用变量"种子云"和#34;未播种的云" ?

我查看了R手册中的attach()功能并通过Google查看。我也尝试输入seeded_clouds,seededclouds和种子。

4 个答案:

答案 0 :(得分:4)

非语法变量名称可以通过将它们放在反引号中来使用:

`my variable` <- 3
`my variable`
## 3

请注意,当使用read.table读入数据时,它会将列名更改为语法变量名(除非使用check.names = FALSE read.table参数。)

Lines <- '"seeded clouds" "unseeded clouds"
129.6 26.1
31.4 26.3
2745.6 87
489.1 95
'
clouds <- read.table(text = Lines, header = TRUE)
clouds$seeded.clouds    

clouds2 <- read.table(text = Lines, header = TRUE, check.names = FALSE)
clouds2$"seeded clouds"
clouds2[["seeded clouds"]]

可以在其他环境中使用反向标记,例如使用withtransform等时

transform(clouds2, diff = `seeded clouds` - `unseeded clouds`)

dif <- with(clouds2, `seeded clouds` - `unseeded clouds`)

plot(`seeded clouds` ~ `unseeded clouds`, clouds2)
可以使用

attach(clouds2),在这种情况下,可以使用反引号引用变量,但通常attach仅以交互方式使用,不鼓励进行编程。

答案 1 :(得分:3)

`seeded clouds`
`unseeded clouds`

编辑:虽然OP似乎不需要这种格式,但这应该适用于需要此功能的人(即决定在列名中使用空格的人)

x = data.frame(a = 1:10, b = 2: 11)
colnames(x) = c("a column","another column")
attach(x)
"a column"
#[1] "a column"
`a column`
#[1]  1  2  3  4  5  6  7  8  9 10

抱歉,我忘记将给定数据视为文本文件而不是实际数据框。

答案 2 :(得分:2)

read.table()会将空格转换为点。您的环境中应该有seeded.clouds

答案 3 :(得分:1)

我以错误的方式解决了这个问题。输入云后,我看到了以下内容。

##    seeded.clouds unseeded.clouds
## 1          129.6           26.10
## 2           31.4           26.30
## 3         2745.6           87.00

毋庸置疑,答案是seeded.clouds和unseeded.clouds。