У меня есть большой набор данных, где каждая строка может иметь одну ячейку с текстом, а остальные пустые. Есть ли способ подмножества этих строк с текстом только в заданном столбце, а остальные пустые?Подмножество через несколько столбцов с пустыми ячейками
Я знаю, что могу использовать, например. tmp[tmp$A!="" & tmp$B=="" & tmp$C=="" & tmp$D=="",]
, но, поскольку у меня ок. 30 столбцов, где я хотел бы запустить это для каждого столбца, это было бы довольно утомительно. Я пробовал следующее, но он не ведет себя так, как ожидалось.
tmp=data.frame(A=c("a","","","",""),
B=c("","b","","",""),
C=c("","","c","",""),
D=c("","","","D",""))
#Attempting subsetting across multiple columns with tmp[,2:3]
tmp[tmp[,1]!="" & tmp[,2:3]=="",]
A B C D
1 a
NA <NA> <NA> <NA> <NA>
#But it results in creating rows with na
tmp[tmp[,1]!="" & tmp[,2:4]=="",]
A B C D
1 a
NA <NA> <NA> <NA> <NA>
NA.1 <NA> <NA> <NA> <NA>
Где я хотел бы только в конечном итоге с:
A B C D
1 a
, которые затем будут использоваться в ifelse()
, так что если есть только ячейка в столбце А с текстом, дать столбец E текст A, если только текст в столбце B содержит столбец E текст B
A B C D E
a A
b B
c C
d D
Предложения?
принять посмотрите на 'complete.cases'. – Justin
@ Justin, не вижу, как это поможет в моем случае. –
@ Хенрик, хорошее предложение, но оно не распространяется на мой случай. Я разработал свой вопрос, чтобы сделать его более понятным ... –