Считать только строки, которые начинаются с (в R)

У меня есть кадр данных, в котором я хотел бы подсчитывать только строки, начинающиеся с R34_, и их столбец x == 3.

              x
R34_sdasdsa   3
R34_sdasdsa   3
R36_sdasdsa   1


person giegie    schedule 18.03.2021    source источник


Ответы (1)


Предполагая, что R34_ на самом деле являются именами строк вашего фрейма данных (давайте назовем его df) и что у вас есть другие столбцы в дополнение к x, вы можете подмножить фрейм данных, используя квадратные скобки, а затем подсчитать строки, используя nrow()

new_df <- df[(startsWith(rownames(df), "R34_")) & (df$x == 3), ]
nrow(new_df)
# [1] 2

В противном случае, если x является единственным столбцом вашего фрейма данных, приведенный выше результат принесет вам NULL, потому что операция подмножества вернет вектор вместо фрейма данных. В этом случае вам следует попробовать length()

length(df[(startsWith(rownames(df), "R34_")) & (df$x == 3), ])
# [1] 2
person Ric S    schedule 18.03.2021