gpt4 book ai didi

sql - 在 R 中,如何从另一个 data.frame 的一列创建具有唯一值的 data.frame?

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

我正在尝试学习 R,但我被一些看似简单的东西卡住了。我知道 SQL,对我来说,表达问题的最简单方法是使用该语言。有人可以帮我把 SQL 翻译成 R 吗?

我发现这是:

    SELECT col1, sum(col2) FROM table1 GROUP BY col1

翻译成这样:

    aggregate(x=table1$col2, by=list(table1$col1), FUN=sum)

我发现这是:

    SELECT col1, col2 FROM table1 GROUP BY col1, col2

翻译成这样:

    unique(table1[,c("col1","col2")])

但是这个的翻译是什么?

    SELECT col1 FROM table1 GROUP BY col1

出于某种原因,“unique”函数似乎在仅处理一列时切换到不同的返回类型,因此它没有像我预期的那样工作。

-TC

最佳答案

我猜您指的是对矢量调用 unique 将返回矢量而不是数据框这一事实。以下是一些可能有帮助的示例:

#Some example data
dat <- data.frame(x = rep(letters[1:2],times = 5),
y = rep(letters[3:4],each = 5))
> dat
x y
1 a c
2 b c
3 a c
4 b c
5 a c
6 b d
7 a d
8 b d
9 a d
10 b d
> unique(dat)
x y
1 a c
2 b c
6 b d
7 a d
#Unique => vector
> unique(dat$x)
[1] "a" "b"
#Same thing
> unique(dat[,'x'])
[1] "a" "b"
#drop = FALSE preserves the data frame structure
> unique(dat[,'x',drop = FALSE])
x
1 a
2 b
#Or you can just convert it back (although the default column name is ugly)
> data.frame(unique(dat$x))
unique.dat.x.
1 a
2 b

关于sql - 在 R 中,如何从另一个 data.frame 的一列创建具有唯一值的 data.frame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8951070/

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