我正在处理一个包含所有数字类型变量的数据框
summary.default(pfnew)
- ID 6016315 - 无 - 数字
- 迭代器 6016315 -none- numeric
- 值 6016315 - 无 - 数字
- CV 6016315 - 非数字
我想创建一个按迭代器和 CV 分组的数据透视表,并汇总 ID 的计数。本质上,我想要数据框中的点数对应于一组特定的迭代器和 CV 值。我使用的代码是:
代码
install.packages("tidyr")
install.packages("dplyr")
install.packages("vctrs")
library(vctrs)
library(tidyr)
library(dplyr)
allow_lossy_cast(pivot<-pfnew%>%
select(pfnew$iterator,pfnew$CV,pfnew$ID)%>%
summarise(CT=count(pfnew$ID)))
但正如在其他论坛中讨论的那样,即使在使用 allow_lossy_cast 之后,我也会收到相同的错误消息。
错误:必须使用有效的下标向量对列进行子集化。 x 由于精度损失,无法从 转换为。
我们如何解决这个问题?或者我们可以用任何其他方式做同样的工作吗?
最佳答案
我只是在使用不同的 dplyr 函数时遇到了同样的错误,并意识到我在调用它之后包含了数据框的名称。尝试从 select 和 summarize 中删除 pfnew$,使其成为 select(c(iterator, CV,ID))。
关于r - 错误 : Must subset columns with a valid subscript vector. x 由于精度损失无法从 <double> 转换为 <integer>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62982642/