我有一个看起来像这样的功能
calc_df <- function(A_df, B_df){
C_df <- filter(A_df, Type == "Animal") %>%
left_join(B_df) %>%
as.numeric(C$Count)
Run Code Online (Sandbox Code Playgroud)
在我无法完成最后工作的情况下,前3个工作正常,但我希望最后一行从函数中计算的新df中取"Count"列并使其成为数字.(现在它是一个字符向量)
**我必须在函数末尾执行此操作,因为在filter命令之前,Count列包含字母,不能将其作为.numeric
Gre*_*gor 14
看起来您正在使用dplyr,并且您想要更改或添加列.这就是dplyr::mutate函数的功能.
更换
as.numeric(C$Count)
Run Code Online (Sandbox Code Playgroud)
同
mutate(Count = as.numeric(Count))
Run Code Online (Sandbox Code Playgroud)
Count使用强制到数字替换替换旧的非数字列.
至于为什么你的代码不起作用,有一些问题:
dplyr用于处理数据帧,主dplyr函数(select,filter,mutate,summarize,group_by,*_join,...)期望数据帧作为第一个参数,然后返回数据帧.通过管道左连接的结果as.numeric,你真的在调用as.numeric(unnamed_data_frame_from_your_join, C$Count),这显然没有多大意义.
您正在尝试引用一个名为C定义内容的数据框C_df,该数据框被调用,我认为您的意思是相同的.这里有两个问题:(1)名称之间的不匹配C和C_df,和(2)您不能引用C_df它自己的定义中.
| 归档时间: |
|
| 查看次数: |
13607 次 |
| 最近记录: |