для l oop с ifelse (dfmain% в% df, TRUE, FALSE) - PullRequest
0 голосов
/ 07 марта 2020

Привет всем! У меня есть этот основной фрейм данных с двумя столбцами «A c» и «description» и несколько других файлов Excel, которые являются моими образцами с такими же заголовками col «A c и« description ». Я буду sh, чтобы проверить, существуют ли строки каждого файла примера в главном кадре данных с условным выводом (TRUE, FALSE). Я объединю каждый вывод образца с основным кадром данных, поэтому моя цель примерно такая:

AcDes                  Sample1 Sample2 
UniprotP6666 ProteinA  True    False
Uniprot P7777 ProteinB False   True

У меня есть 29 сэмплов, и я ищу умный способ сделать это вместо того, чтобы набирать это 29 раз:

sample1match <- ifelse(maindf$Ac %in% sample1.xls$Ac, "True", "False")

и объединять все, например, sample1match в один df

Я пробовал это:

temp = list.files(pattern="*.xls") 

for (i in 1:length(temp)) 
    assign(temp[i], read_xlsx(temp[i]))

temp - это список dfs, в котором каждый элемент является моим образцом файла Excel.

for (i in 1:length(temp)) {
    ifelse(maindf["Accesssion"] %in% i["Accession"],"TRUE","FALSE")
}

maindf - это уникальная агрегированная доступность;

Ошибка в [.data.frame (uniqueaggregatedaccession, «Доступ»): выбраны неопределенные столбцы 5. stop («выбран неопределенный столбец») 4. [.data.frame (uniqueaggregatedaccession, «Доступ») 3. uniqueaggregate daccession ["Доступ"] 2. uniqueaggregatedaccession ["Доступ"]% в% i ["Присоединение"] 1. ifelse (uniqueaggregatedaccession ["Доступ"]% в% i ["Доступ"], "ИСТИНА", "ЛОЖЬ" )

Я также пытался использовать lapply: lapply(temp,function(x)

ifelse(uniqueaggregatedaccession$Accession%in%temp(x),"TRUE"","FALSE") 

Ошибка: неожиданная строковая константа в "lapply (temp, function (x)) ifelse (uniqueaggregatedaccession $ Accession% in% temp (x), "TRUE" "," FALSE "

Я довольно новичок ie в этом и буду признателен за любые советы, если мой код не работает. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...