如何使用aggregate()计算NA值,并使用tapply()作为替代方法
我是R的新手,正在为一周后的R考试做准备 在一个家庭作业问题上,我试图用尽可能多的方法解决一个问题(在时间有限的编码考试中,准备更多的工具总是派上用场) 问题如下:在我的数据集中,“如何使用aggregate()计算NA值,并使用tapply()作为替代方法,r,loops,aggregate,tapply,R,Loops,Aggregate,Tapply,我是R的新手,正在为一周后的R考试做准备 在一个家庭作业问题上,我试图用尽可能多的方法解决一个问题(在时间有限的编码考试中,准备更多的工具总是派上用场) 问题如下:在我的数据集中,“ckm_nodes.csv” 变量采用日期记录了 医生从1953年11月开始开四环素处方。如果医生在研究结束的第17个月(即1955年2月)之前没有开始开四环素,则记录为Inf。如果不知道医生何时或是否服用四环素,则其值为NA。回答以下问题。(a) 在研究的每个月,有多少医生开始开四环素的处方?(b) 有多少人在研究
ckm_nodes.csv
”
变量采用日期记录了
医生从1953年11月开始开四环素处方。如果医生在研究结束的第17个月(即1955年2月)之前没有开始开四环素,则记录为Inf。如果不知道医生何时或是否服用四环素,则其值为NA。回答以下问题。(a) 在研究的每个月,有多少医生开始开四环素的处方?(b) 有多少人在研究期间从未开过处方?(c) NAs有多少个
我试图使用aggregate()函数来计算每个月开始开处方的医生数量。我的基本代码是:
aggregate(nodes$adoption_date, by = nodes["adoption_date"], length),
这对NA值无效
我想知道是否有一种方法可以让聚合函数计算NA值,因此我阅读了关于aggregate()函数的R文档,其中说:
行动
一个函数,指示当数据包含NA值时应该发生什么。默认设置是忽略给定变量中缺少的值
所以我在谷歌上搜索如何解决这个问题并设置“na.action=NULL”。但是,当我尝试运行此代码时,发生了以下情况:
aggregate(nodes$adoption_date, by = nodes["adoption_date"], length, na.action = NULL)
乐趣中的错误(X[[i]],…):
传递给“length”的2个参数需要1
尝试按顺序移动参数:
aggregate(nodes$adoption_date, length, by = nodes["adoption_date"], na.action = NULL)
乐趣中的错误(X[[i]],…):
传递给“length”的2个参数需要1
但它也不起作用
你知道怎么解决这个问题吗
*****************塔普利()
此外,我想知道是否可以使用“tapply”函数来解决家庭作业中的Q1问题。我试过了
count <- function(data){
return(length(data$adoption_date))
}
count_tetra <- tapply(nodes,nodes$adoption_date,count)
count您看过数据表了吗?我相信像这样的事情会起作用
require(data.table)
# convert nodes to data.table
setDT(nodes)
# count occurrences for each value of adoption_rate
nodes[, .N, by = adoption_date]
嗨,欢迎来到苏。您已经提供了很好的详细信息,但需要将代码段格式化为代码。
require(data.table)
# convert nodes to data.table
setDT(nodes)
# count occurrences for each value of adoption_rate
nodes[, .N, by = adoption_date]