Tabela po rzędzie z R

Chciałbym umieścić tabele według wierszy w ramce danych. Mogę uzyskać odpowiednie wyniki używająctable w ciąguapply w następującym przykładzie:

df.1 <- read.table(text = '
  state  county  city  year1  year2  year3  year4  year5
      1       2     4      0      0      0      1      2
      2       5     3     10     20     10     NA     10
      2       7     1    200    200     NA     NA    200
      3       1     1     NA     NA     NA     NA     NA
', na.strings = "NA", header=TRUE)

tdf <- t(df.1)
apply(tdf[4:nrow(tdf),1:nrow(df.1)], 2, function(x) {table(x, useNA = "ifany")})

Oto wyniki:

[[1]]
x
0 1 2 
3 1 1 

[[2]]
x
  10   20 <NA> 
   3    1    1 

[[3]]
x
 200 <NA> 
   3    2 

[[4]]
x
<NA> 
   5 

Jednak w poniższym przykładzie każdy wiersz składa się z jednej wartości.

df.2 <- read.table(text = '
  state  county  city  year1  year2  year3  year4  year5
      1       2     4      0      0      0      0      0
      2       5     3      1      1      1      1      1
      2       7     1      2      2      2      2      2
      3       1     1     NA     NA     NA     NA     NA
', na.strings = "NA", header=TRUE)

tdf.2 <- t(df.2)
apply(tdf.2[4:nrow(tdf.2),1:nrow(df.2)], 2, function(x) {table(x, useNA = "ifany")})

Otrzymane dane wyjściowe to:

# [1] 5 5 5 5

Jako taki, nie mogę powiedzieć z tego wyjścia, że ​​pierwsze 5 jest za 0, drugie 5 za 1, trzecie 5 za 2, a ostatnie 5 za NA. Czy istnieje sposób, w jaki R może zwrócić wartość reprezentowaną przez każde 5 w drugim przykładzie?

questionAnswers(4)

yourAnswerToTheQuestion