Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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
R 查找每个类别包含多少天?_R - Fatal编程技术网

R 查找每个类别包含多少天?

R 查找每个类别包含多少天?,r,R,例如: head(software_data) id installation software_v 1 2011-12-01 v12 2 2011-12-01 v12 3 2

例如:

 head(software_data)
                               id   installation    software_v     
                                1   2011-12-01          v12
                                2   2011-12-01          v12
                                3   2011-12-01          v12 
                                4   2011-12-01          v12 
                                5   2011-12-02          v12 
                                6   2011-12-02          v12 
如何查找每个版本的活动天数

一个不那么方便的方法是
执行:
summary(software_data[software_data$software_v==“v12”,])
并每次更改版本,以便您可以在安装字段中检查最小值和最大值。

以下是使用data.table包执行此操作的方法

# Install the package if you don't have it already
# install.packages("data.table")

# Load the package
library(data.table)

# Convert the data.frame to a data.table
software_data <- data.table(software_data)

days_active_by_v <- software_data[, .(
  min_date = min(installation), max_date = max(installation)
), by=.(software_v)][, ":=" (days_active = max_date - min_date)]
#如果尚未安装该软件包,请安装它
#install.packages(“data.table”)
#加载包
库(数据表)
#将data.frame转换为data.table

软件\u数据为什么您不能简单地使用
功能??这是为了获得频率。我将向您的数据中添加更多行:

df2=read.table(text="
           id   installation    software_v     
                                1   2011-12-01          v12
               2   2011-12-01          v12
               3   2011-12-01          v12 
               4   2011-12-01          v12 
               5   2011-12-02          v12 
               6   2011-12-02          v12
               7   2011-12-01          v13
               8   2011-12-01          v13
               9   2011-12-02          v13
               10  2011-12-02          v13",h=T,stringsAsFactors=F)





 colSums(with(df2,table(installation,software_v))>0)
v12 v13 
  2   2

我们看到v2活动了2天,而且
v13
活动了2天

我认为您需要一个分组摘要,即
software\u data%>%group\u by(software\u v)%%>%summary(n=n\u distinct(installation))
summary(n=n())
你能告诉我它返回了什么,看看它是否与我正在尝试查找的数据集相同,因为数据集很大,我不确定它实际上是做什么的?因为一天内可能有不止一个人完成了安装。当你需要时间范围时,计算天数范围更好。现在呢?