sách gpt4 ai đã đi

r - 合计 : sum not meaningful for factors

In lại 作者:行者123 更新时间:2023-12-04 10:39:22 26 4
mua khóa gpt4 Nike

我正在尝试一些应该很简单的事情,非常欢迎任何关于正在发生的事情的提示。

我有一个大型数据框,其中包含从某些城市进口的国家/地区。对于某些国家/地区,我有 2 个条目。我想总结每个城市的进口量,并为每个国家/地区分配一个独特的行。我正在使用 aggregate功能。例如(我包括数据框的一小部分):

municipalities<-c("country",1100056, 1100106,1100205,1100304,1200104,1200252)
c1<-c("Afghanistan",2,34,23.4,5,0,0)
c2<-c("Afghanistan",0,20,11.1,5.4,2,0)
c3<-c("Albania",12,120,11.4,5.1,12,10)
c4<-c("Albania",0,40,61.1,65.4,652,2)
df<-as.data.frame(rbind(municipalities,c1,c2,c3,c4))

基本上我正在尝试
df<-df[-1,]    
aggregate(df[,2:7],list(df[,1]),sum)

但我收到一条消息:
Error in Summary.factor(c(4L, 1L), na.rm = FALSE) : 
sum not meaningful for factors

我试图强制 df是数字,将字符声明为字符等,但似乎没有任何帮助。

1 Câu trả lời

这是因为您创建数据框的方式。例如,c1是字符,因为向量只能有一个类。当您将它们放入数据框中时,这些字符向量将被进一步强制为因子。因此,您正在尝试运行 tổng hợp关于因素。您已经想到了这一点,但随后尝试将因子转换为数字,这可能会给您带来荒谬的结果。

简单的答案是按列而不是按行构建数据框,这样您就不会遇到这么多强制问题。

鉴于您已经拥有的数据,这将解决您的问题:

df[] <- lapply(df, function(x) type.convert(as.character(x)))
aggregate(. ~ V1, df, sum)

(感谢@AnandaMahto 提供了比我原来更简洁的转换方式。)

kết quả:
           V1 V2 V3 V4 V5 V6 V7
1 Afghanistan 2 54 34.5 10.4 2 0
2 Albania 12 160 72.5 70.5 664 12

关于r - 合计 : sum not meaningful for factors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19493252/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com