Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用aggregate()计算NA值,并使用tapply()作为替代方法_R_Loops_Aggregate_Tapply - Fatal编程技术网

如何使用aggregate()计算NA值,并使用tapply()作为替代方法

如何使用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) 有多少人在研究

我是R的新手,正在为一周后的R考试做准备

在一个家庭作业问题上,我试图用尽可能多的方法解决一个问题(在时间有限的编码考试中,准备更多的工具总是派上用场)

问题如下:在我的数据集中,“
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]