gpt4 book ai didi

r - 单列对象的动物园列名

转载 作者:行者123 更新时间:2023-12-04 16:53:24 24 4
gpt4 key购买 nike

我有一个关于动物园列名的问题。我通常从数据框中创建动物园对象,然后从数据框中选取列作为动物园列。我发现,如果我只为动物园对象指定一列,那么动物园将不会采用列名。这是否意味着它不被视为动物园中的“专栏”?

这是我通常如何做的一个例子,一列和两列。

Lines.1 = "Index,dbt
2008-08-20 15:03:18,88.74
2008-08-20 15:08:18,88.74
2008-08-20 15:13:18,86.56
2008-08-20 15:18:18,85.82"

Lines.2 = "Index,dbt,rh
2008-08-20 15:03:18,88.74,18.25
2008-08-20 15:08:18,88.74,17.25
2008-08-20 15:13:18,86.56,18.75
2008-08-20 15:18:18,85.82,19.75"

x =read.table(text = Lines.1, header = TRUE, sep = ",")
y =read.table(text = Lines.2, header = TRUE, sep = ",")

colnames(x)
colnames(y)

library(zoo)
zx = zoo(x[,2], as.POSIXct(x$Index, tz="GMT"))
zy = zoo(y[,2:3], as.POSIXct(y$Index, tz="GMT"))

colnames(zx)
colnames(zy)

结果显示如下:
> colnames(zx)
NULL
> colnames(zy)
[1] "dbt" "rh"

我错过了什么吗?

最佳答案

此行为不是由于 zoo . x[,2]不返回数据帧,而是返回向量。因此,没有列也没有列名。

x[,2]
[1] 88.74 88.74 86.56 85.82

如果要返回一列数据框,可以使用 x[2]没有逗号或 x[,2, drop = FALSE] .
x[2]
dbt
1 88.74
2 88.74
3 86.56
4 85.82

x[,2, drop = FALSE]
dbt
1 88.74
2 88.74
3 86.56
4 85.82

默认值 dropTRUE .这意味着一列数据框会自动转换为向量。

现在,它有效:
zx <- zoo(x[2], as.POSIXct(x$Index, tz="GMT"))
colnames(zx)
[1] "dbt"

关于r - 单列对象的动物园列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17429303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com