Мне пришлось заставить свой фрейм данных превращаться в символ и поворачиваться, чтобы получить окончательный результат, который у меня есть. Я пытаюсь выполнить следующие 3 задачи.
- все местоположения ячеек, которые нельзя превратить в цифры c, используя
as.numeric()
- строки фильтра, где все заданные c столбцы, оканчивающиеся на «_chart», являются NA.
- строк фильтра, где значение Ref не совпадает ни с одним из столбцов _chart
SAMPLE DATA
compared <- structure(list(ID = c("51-07518", "51-07518", "51-07518", "51-07518",
"51-07518", "51-07518"), name = c("SC5pos", "SC7pos", "SC1",
"SC4neg", "SC6pos", "Not found"), Ref = c("1", "1", "1", "1",
"1", "1"), A_chart = c("R2", NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_),
A2_chart = c(NA_character_, NA_character_, NA_character_,
"1", "0", NA_character_), B_chart = c(NA_character_,
"0", NA_character_, NA_character_, NA_character_,
NA_character_), D_chart = c(NA_character_, NA_character_,
"1", NA_character_, NA_character_, NA_character_
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))
# A tibble: 6 x 7
ID name Ref A_chart A2_chart B_chart D_chart
<chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 51-07518 SC5pos 1 R2 NA NA NA
2 51-07518 SC7pos 1 NA NA 0 NA
3 51-07518 SC1 1 NA NA NA 1
4 51-07518 SC4neg 1 NA 1 NA NA
5 51-07518 SC6pos 1 NA 0 NA NA
6 51-07518 Not found 1 NA NA NA NA
Я читал форумы и команды из dplyr и думал filter_at
? Примерно так:
library(tidyverse)
filter_at(compared, vars(ends_with("chart")), all_vars(!is.na(.)))