Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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,所以我有一个数据集,一列是ID号,一列是年份,另一列是H,D或空。我想计算每个月特定id的H和D的总和。这可能吗 假设我有这3列,这是我希望计数等于的。在每个唯一的ID中,我想统计某个年份的H和D ID: YearMon: Naturaleza: Count: 1 012007 H 1 1 012007 D 2 1 022007 NA 1 032

所以我有一个数据集,一列是ID号,一列是年份,另一列是H,D或空。我想计算每个月特定id的H和D的总和。这可能吗

假设我有这3列,这是我希望计数等于的。在每个唯一的ID中,我想统计某个年份的H和D

ID:    YearMon:    Naturaleza: Count:
1      012007      H            1
1      012007      D            2
1      022007                   NA
1      032007      H            1
2      012007      H            1
2      022007                   Na
2      022007      D            1
2      032007                   NA

我们可以尝试使用
data.table
。将“data.frame”转换为“data.table”(
setDT(df1)
),按“ID”、“YearMon”分组,我们在指定“i”的逻辑条件后将序列创建为列“Count”(
Naturaleza!=”

数据
df1当我这样做时,我只得到前5行和最后5行。如何查看完整表格?@swagbag更改数据的默认打印选项。表格为什么要将其打印到控制台?使用
View(df1)
而不是
options(datatable.print.nrows=Inf)
不要认为在控制台中打印1MM行有任何意义
library(data.table)
setDT(df1)[Naturaleza != '', Count := 1:.N , by = .(ID, YearMon)]
df1
#   ID YearMon Naturaleza Count
#1:  1   12007          H     1
#2:  1   12007          D     2
#3:  1   22007               NA
#4:  1   32007          H     1
#5:  2   12007          H     1
#6:  2   22007               NA
#7:  2   22007          D     1
#8:  2   32007               NA
df1 <- structure(list(ID = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L),
YearMon = c(12007L, 
 12007L, 22007L, 32007L, 12007L, 22007L, 22007L, 32007L), 
Naturaleza = c("H", 
"D", "", "H", "H", "", "D", "")), .Names = c("ID", "YearMon", 
"Naturaleza"), row.names = c(NA, -8L), class = "data.frame")