考虑以下数据框:
d <- data.frame(c1=c(rep("a",6),rep("b",6)),
c2=c("v1","v1","v2","v3","v3","v1", "v2","v3","v1","v2","v3","v2"),
c3=c(1.4,-1.2,1.5,1.6,-1.7,1.2, -1.1,-1.2,1.3,1.5,1.1,-1.9))
我想添加第 4 列 c4 来计算列 c1 中的“a”和“b”有多少个正数和负数。但是,只有 c2 等于“v1”时应考虑 c3 中的那些值。此外,如果只有正值或负值,则应打印空字符串
因此,对于我的示例,第 4 列应如下所示:
> d
c1 c2 c3 c4
1 a v1 1.4 2/1
2 a v1 -1.2 2/1
3 a v2 1.5 2/1
4 a v3 1.6 2/1
5 a v3 -1.7 2/1
6 a v1 1.2 2/1
7 b v2 -1.1 " "
8 b v3 -1.2 " "
9 b v1 1.3 " "
10 b v2 1.5 " "
11 b v3 1.1 " "
12 b v2 -1.9 " "
对于 a ,使用 2/1 的值,因为有两个正数和一个负数,其中 c2="v1"
目前我最接近使用聚合函数,但我仍然没有真正做到正确。不确定是否有更好的功能可用于此类问题?