У меня есть фрейм данных фреймов данных, где 8-й столбец каждого фрейма данных является числом. Для каждой записи в этом столбце, для каждого фрейма данных я хочу использовать оператор if else, чтобы выяснить, больше ли число 0,5. Если оно больше 0,5, я хочу создать новый столбец, который содержит 1- (число). Если его меньше, чем .5, я хочу, чтобы новый столбец содержал копию оригинального номера.
Например
[[1]]
DTM 2287 2 16 G 0.187500 C 0.812500
DTM 2290 2 16 A 0.187500 C 0.812500
DTM 2291 2 16 C 0.812500 G 0.187500
DTM 2293 2 16 T 0.000000 C 1.000000
DTM 2305 2 16 G 0.000000 C 1.000000
Я бы хотел, чтобы вывод выглядел так:
[[1]]
DTM 2287 2 16 G 0.187500 C 0.812500 0.187500
DTM 2290 2 16 A 0.187500 C 0.812500 0.187500
DTM 2291 2 16 C 0.812500 G 0.187500 0.187500
DTM 2293 2 16 T 0.000000 C 1.000000 0
DTM 2305 2 16 G 0.000000 C 1.000000 0
Я пробовал это :
files.x<-lapply(file.list, function(y){
if (test[,8] > 0.5) {
test$fold=(1-x[,8])
} else {test$fold=x[,8]}})
Но получите сообщение о том, что номер столбца неверен.
Я пытался протестировать его на одном фрейме данных, что работает, но она применяет функцию к каждой строке, а не к тем, где значение больше. 5
test2<-if (test[,8] > 0.5){test$fold=1-test[,8]} else {test$fold=test[,8]}
Любая помощь будет высоко ценится.