Подсчитать количество |за столбец в кадре данных - PullRequest
0 голосов
/ 21 марта 2019

У меня есть 5 столбцов на 100 строк данных.Я хочу посчитать количество символов канала |, встречающихся в каждом столбце.

df <- as.data.frame(matrix(c(
    c("1", "2", "3", "4", "5"),
    c("A", "B", "C", "B", "B"),
    c("|", "W", "G", "|", "D"),
    c("Q", "D", "F", "|", "F"),
    c("Q", "|", "|", "|", "Q")),
    5, 5, byrow=T)
)

  V1 V2 V3 V4 V5
1  1  2  3  4  5
2  A  B  C  B  B
3  |  W  G  |  D
4  Q  D  F  |  F
5  Q  |  |  |  Q

Мне бы хотелось, чтобы результат показывал 1 канал в столбце 1, 1 канал в столбце 2, 1 канал в столбце 3, 3 трубы в колонне 4, 0 труб в колонке 5

Ответы [ 2 ]

3 голосов
/ 21 марта 2019

Другой способ сделать это - использовать colSums() во фрейме данных Дэна Y.

colSums(df == "|")

V1 V2 V3 V4 V5 
 1  1  1  3  0 
1 голос
/ 21 марта 2019

Если каждая строка состоит из одного символа, вы можете сделать простой sapply:

# turning the example data you provided into a data.frame
df <- as.data.frame(matrix(c(
    c("1", "2", "3", "4", "5"),
    c("A", "B", "C", "B", "B"),
    c("|", "W", "G", "|", "D"),
    c("Q", "D", "F", "|", "F"),
    c("Q", "|", "|", "|", "Q")),
    5, 5, byrow=T)
)

# calculation you want
sapply(df, function(x) sum(x == "|"))

# result = c(1, 1, 1, 3, 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...