gpt4 book ai didi

r - Dplyr - 错误 : column '' has unsupported type

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

在 data.frame 上使用 dplyr 来计算每组字符变量的缺失观察数时,我遇到了一个奇怪的问题。这会产生错误“错误:列”具有不受支持的类型。

为了复制它,我创建了一个子集。子集 rdata 文件可在此处获得:
rdata file including dftest data.frame
第一的。使用我提供的子集,代码:

dftest %>%
group_by(file) %>%
summarise(missings=sum(is.na(v131)))

会产生错误:
错误:"file"列的类型不受支持

str(dftest) 返回:
'data.frame':   756345 obs. of  2 variables:
$ file: atomic bjir31fl.dta bjir31fl.dta bjir31fl.dta bjir31fl.dta ...
..- attr(*, "levels")= chr
$ v131: Factor w/ 330 levels "not of benin",..: 6 6 6 6 1 1 1 9 9 9 ...

但是,取子集的一个子集,然后再次运行 dplyr 命令,将创建预期的输出。
dftest <- dftest[1:756345,]
dftest %>%
group_by(file) %>%
summarise(missings=sum(is.na(v131)))

str(dftest) 现在返回:
'data.frame':   756345 obs. of  2 variables:
$ file: chr "bjir31fl.dta" "bjir31fl.dta" "bjir31fl.dta" "bjir31fl.dta" ...
$ v131: Factor w/ 330 levels "not of benin",..: 6 6 6 6 1 1 1 9 9 9 ...

任何人都对可能导致此错误的原因以及如何处理有任何建议。在我的原始文件中,我有 300 个变量,而 dplyr 指出其中大部分是不受支持的类型。

谢谢。

最佳答案

这似乎是使用 filter 的问题当数据框的列具有属性时。例如,

> df = data.frame(x=1:10, y=1:10)
> filter(df, x==3) # Works
x y
1 3 3

x 添加属性柱子。请注意 str(df)显示 xatomic现在,和 filter不起作用:
> attr(df$x, 'width')='broad'
> str(df)
'data.frame': 10 obs. of 2 variables:
$ x: atomic 1 2 3 4 5 6 7 8 9 10
..- attr(*, "width")= chr "broad"
$ y: int 1 2 3 4 5 6 7 8 9 10
> filter(df, x==3)
Error: column 'x' has unsupported type

要使其工作,请删除该属性:
> attr(df$x, 'width') = NULL
> filter(df, x==3)
x y
1 3 3

关于r - Dplyr - 错误 : column '' has unsupported type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27554429/

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