У меня есть данные, где я сжал результаты дубликата гена, чтобы каждый был в 1 строке. Это привело к заполнению некоторых строк запятыми. Я пытаюсь заменить строки, содержащие только запятые, на NA. Однако у меня также есть строки с запятыми и качественными данными, которые я пытаюсь сохранить. Например:
Gene Condition
Gene1 Name=Asymmetrical dimethylarginine level, Name=Bipolar disorder and schizophrenia, Name=3-hydroxypropylmercapturic acid levels in smoker
Gene2 Name=blood pressure, Name=diabetes
Gene3 Name=heart disease, , , , ,
Gene4 , , , , , , , , ,
Gene5 NA
Gene6 , , ,
Ожидаемый результат:
Gene Condition
Gene1 Name=Asymmetrical dimethylarginine level, Name=Bipolar disorder and schizophrenia, Name=3-hydroxypropylmercapturic acid levels in smoker
Gene2 Name=blood pressure, Name=diabetes
Gene3 Name=heart disease, , , , ,
Gene4 NA
Gene5 NA
Gene6 NA
#ideally I would get rid of Gene3's extra commas but this is not necessary
Я пытаюсь закодировать такой оператор, как «если в столбце условия есть только запятые, заменить на NA», и пытаясь сделать это с помощью оператора вроде data$Condition[ if("," & ![A-Z]|[a-z]|[=]) ] <- "NA"
, но я не уверен, как правильно понять синтаксис или если это будет работать для всех строк только с запятыми, но количество запятых варьируется - я новичок в R, так что любое руководство будет быть оцененным.
Пример данных:
DF <-
structure(list(Gene = c("Gene1", "Gene2", "Gene3", "Gene4", "Gene5",
"Gene6"), Condition = c("Name=Asymmetrical dimethylarginine leve,l Name=Bipolar disorder and schizophrenia, Name=3-hydroxypropylmercapturic acid levels in smoker",
"Name=blood pressure, Name=diabetes", "Name=heart disease, , , , ,",
", , , , , , , , ,", NA, "Name=kidney disease, , ,")),
row.names = c(NA, -6L), class = "data.frame")