例如:
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",])
并在每次版本更改时都可以检查安装字段中的最小值和最大值。
答案 0 :(得分:1)
为什么你不能简单地使用table
函数?这是为了获得频率。我将为您的数据添加更多行:
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天
答案 1 :(得分:0)
以下是使用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)]
名为days_active的列为您提供版本
的最小和最大日期之间的天数差异