Список частот из нескольких столбцов в кадре данных на основе ограничения - PullRequest
0 голосов
/ 22 октября 2019

У меня есть df, содержащий слова (столбцы w1, w2 и т. Д.) И их длительности, некоторые из которых являются NA (столбцы d1, d2 и т. Д.), Например:

set.seed(47)
df <- data.frame(
  w1 = c(sample(LETTERS[1:4], 10, replace = T)),
  w2 = c(sample(LETTERS[1:4], 10, replace = T)),
  w3 = c(sample(LETTERS[1:4], 10, replace = T)),
  w4 = c(sample(LETTERS[1:4], 10, replace = T)),
  d1 = c(rep(NA, 3), round(rnorm(7),3)),
  d2 = c(round(rnorm(6),3), NA, round(rnorm(3),3)),
  d3 = c(round(rnorm(2),3), rep(NA,2), round(rnorm(6),3)),
  d4 = c(round(rnorm(1),3), NA, round(rnorm(8),3))
)
   w1 w2 w3 w4     d1     d2     d3     d4
1   D  A  A  C     NA -2.322 -0.693 -0.488
2   B  C  C  B     NA -1.967  0.261     NA
3   D  A  C  B     NA  0.028     NA  -0.92
4   D  C  A  A -1.566  0.484     NA  0.898
5   C  C  C  D  0.249  0.144  0.507 -0.356
6   C  D  B  B  -0.34   -1.2  0.564  1.032
7   B  B  A  A  0.417     NA  0.061  0.664
8   B  A  A  D -0.326  0.885 -0.109   0.97
9   C  A  C  B  -0.89  0.887 -0.155  1.676
10  D  B  D  C -1.608  0.001   0.95  1.988

То, что я хотел бы получить, - это список по частоте всех этих слов токенов , которые не NA в соответствующем столбце длительности. Так, например, «D» в столбце w1 - это NA в d1, поэтому этот токен не должен быть включен в подсчет частоты. Как это запрограммировано в базе R, в идеале в одной строке кода?

...