gpt4 book ai didi

r - 在 R 中使用 as.numeric 以及函数和管道

转载 作者:行者123 更新时间:2023-12-02 09:10:30 24 4
gpt4 key购买 nike

我有一个看起来像这样的函数

 calc_df <- function(A_df, B_df){
C_df <- filter(A_df, Type == "Animal") %>%
left_join(B_df) %>%
as.numeric(C$Count)

在我无法让最后一个石灰工作的地方,前 3 个可以正常工作,但我希望最后一行从函数中计算的新 df 中获取“Count”列,并将其设为数字​​。 (现在它是一个字符向量)

** 我必须在函数末尾执行此操作,因为在过滤器命令之前,Count 列包含字母并且不能设为.numeric

最佳答案

您似乎正在使用 dplyr,并且您想要更改或添加列。这就是 dplyr::mutate 函数的作用。

替换

as.numeric(C$Count)

mutate(Count = as.numeric(Count))

用强制转换为数字的替换来替换旧的非数字 Count 列。

至于为什么你的代码不起作用,有几个问题:

  • dplyr 是为处理数据帧而设计的,主要的 dplyr 函数(select、filter、mutate、summary、group_by、*_join...)期望数据帧作为第一个参数,然后返回数据帧。通过将左连接的结果通过管道传输到 as.numeric 中,您实际上是在调用 as.numeric(unnamed_data_frame_from_your_join, C$Count),这显然没有多大意义.

  • 您正在尝试在名为 C_df 的数据框定义中引用名为 C 的数据框,我认为您的意思是相同的。这里有两个问题:(1) 名称 CC_df 之间不匹配,(2) 您无法在其中引用 C_df自己的定义。

关于r - 在 R 中使用 as.numeric 以及函数和管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31415344/

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