gpt4 book ai didi

r - 合并在 R 中产生意想不到的结果

转载 作者:行者123 更新时间:2023-12-01 23:04:31 25 4
gpt4 key购买 nike

我正在尝试合并:

to_graph <- structure(list(Teacher = c("BS", "BS", "FA"
), Level = structure(c(2L, 1L, 1L), .Label = c("BE", "AE", "ME",
"EE"), class = "factor"), Count = c(2L, 25L, 28L)), .Names = c("Teacher",
"Level", "Count"), row.names = c(NA, 3L), class = "data.frame")

graph_avg <- structure(list(Teacher = structure(c(1L, 1L, 2L), .Label = c("BS", 
"FA"), class = "factor"), Count.Fraction = c(0.0740740740740741,
0.925925925925926, 1)), .Names = c("Teacher", "Count.Fraction"
), row.names = c(NA, -3L), class = "data.frame")

merge(to_graph, graph_avg, by="Teacher"),但我没有得到我期望的结果(3行),而是得到:

  Teacher Level Count Count.Fraction
1 BS AE 2 0.07407407
2 BS AE 2 0.92592593
3 BS BE 25 0.07407407
4 BS BE 25 0.92592593
5 FA BE 28 1.00000000

有什么想法吗?谢谢!

最佳答案

不确定您想要实现什么目标。 merge 正在做它应该做的事情。

让我们看看所有的 data.frames

graph_avg
Teacher Count.Fraction
1 BS 0.07407407
2 BS 0.92592593
3 FA 1.00000000

to_graph
Teacher Level Count
1 BS AE 2
2 BS BE 25
3 FA BE 28

merge(to_graph, graph_avg)
Teacher Level Count Count.Fraction
1 BS AE 2 0.07407407
2 BS AE 2 0.92592593
3 BS BE 25 0.07407407
4 BS BE 25 0.92592593
5 FA BE 28 1.00000000

现在,如果我要合并这些内容,我必须查看哪些内容是常见的以及我将得到什么结果。老师,这两点你都有。但是,如果我尝试只融入老师,我该怎么办? BS 没有唯一标识符,并且在两个 data.frames 中都出现了两次。如果其中一个出现过一次,那就很容易解决了。所以,我可以检查并说,好吧,我在一个数据帧、级别中有一个唯一标识符...就可以了...然后去做一些不会丢失任何数据的东西。 merge 对于你有一个小 data.frame 的情况来说非常方便,比如每个老师都在其中一次,并且其中有老师的年龄或性别。您可以将其合并到另一个 data.frame 中,并对老师进行重复测量,每次老师出现时您也会知道这些。但对于您正在做的事情来说,这不是正确的工具。

merge 不是您想要的。如果这些确实是您的 data.frames,请使用 cbind 代替。

cbind(to_graph, graph_avg$Count.Fraction)

Teacher Level Count Count.Fraction
1 BS AE 2 0.07407407
2 BS BE 25 0.92592593
3 FA BE 28 1.00000000

这可能就是您正在寻找的内容。

关于r - 合并在 R 中产生意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8263047/

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