gpt4 book ai didi

r - 使用 `$` 命名数据框列向量

转载 作者:行者123 更新时间:2023-12-03 18:31:51 25 4
gpt4 key购买 nike

有人可以解释为什么在下面的示例中,why 的列名称似乎保留为 x,即使它明确命名为 why 并且可以被这样调用但不是为 zz 列调用?

df<-data.frame(x=1:5,y=1:5)
df$z<-"a"
df$zz<-df$x*df$y
df$why<-df[1]*df[2]

df

df["why"]

最佳答案

因为您实际上是将数据帧存储到 why - 而不是向量中。

> str(df)
'data.frame': 5 obs. of 4 variables:
$ x : int 1 2 3 4 5
$ y : int 1 2 3 4 5
$ z : chr "a" "a" "a" "a" ...
$ why:'data.frame': 5 obs. of 1 variable:
..$ x: int 1 4 9 16 25
> str(df[1]*df[2])
'data.frame': 5 obs. of 1 variable:
$ x: int 1 4 9 16 25
> str(df[,1] * df[,2])
int [1:5] 1 4 9 16 25
> df$why2 <- df[,1]*df[,2]
> df
x y z x why2
1 1 1 a 1 1
2 2 2 a 4 4
3 3 3 a 9 9
4 4 4 a 16 16
5 5 5 a 25 25

df[1] 将 df 的第一个元素作为子列表返回。数据框是一种特殊类型的列表,这就是为什么您可以使用这种类型的索引来获取列。但是,仅使用单个括号会告诉它返回包含感兴趣元素的子列表(而不仅仅是感兴趣的元素)。

关于r - 使用 `$` 命名数据框列向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12477763/

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