数据的频率由R中的两个变量指向

时间:2017-05-04 21:26:13

标签: r dataframe

我所知道的必须是一个简单的答案,但我似乎无法弄明白。

假设我有一个数据集:

id <- c(1,1,1,2,2,3,3,4,4)
visit <- c("A", "B", "C", "A", "B", "A", "C", "A", "B")
test <- c(12,16, NA, 11, 15,NA, 0,12, 5)

df <- data.frame(id,visit,test)

我想知道每次访问的数据点数,以便最终输出看起来像这样:

visit   test
A       3
B       3
C       1

我该怎么做呢?我试过用表

table(df$visit, df$test)

但是我得到了一个完整的网格,其中显示了访问量和测试值组合的值数。

我可以通过这样做来对每一行求和:

sum(table(df$visit, df$test))[1,]
sum(table(df$visit, df$test))[2,]
sum(table(df$visit, df$test))[3,]

但我觉得有一种更简单的方法,我想念它!任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

基础R的

import java.util.*; public class StringReverser { public static String getReverser(String i) { if (i==(" ")) return ""; if (i.charAt(0)==i.charAt(1)) return i.substring(1) + getReverser(i.substring(2)); else return getReverser(i.substring(1)); } public static void main (String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter a String"); String in = sc.nextLine(); System.out.println(getReverser(in)); } } 对此非常理想。按Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1 at java.lang.String.charAt(String.java:646) at StringReverser.getReverser(StringReverser.java:9) at StringReverser.getReverser(StringReverser.java:12) at StringReverser.getReverser(StringReverser.java:10) at StringReverser.main(StringReverser.java:20)aggregate进行分组并计算id。在确定visit

之前,使用length删除NA
!is.na()

答案 1 :(得分:0)

怎么样:

data.frame(rowSums(table(df$visit, df$test)))