Вот пример набора данных.Позвольте мне показать всем, что я делаю со своими данными, и затем я объясню, с чем я борюсь.Я прошу прощения, если название не точное описание.Я старался изо всех сил, но я немного новичок в этом.Не стесняйтесь менять его на что-то более подходящее, если это необходимо
Location sample1 sample 2 sample 3
chr1:1234 0/1 1/1 0/0
chr2:5678 0/0 0/0 0/0
chr3:2345 1/1 1/1 1/1
chr4:6789 0/1 1/1 ./.
Я использую это для преобразования их в ДА, НЕТ или МОЖЕТ БЫТЬ
replacement<-function(x){
x=replace(x,which(x=='./.'),0.1)
x=replace(x,which(x=='0/0'),0)
x=replace(x,which(x=='0/1'),1)
x=replace(x,which(x=='1/1'),2)
}
test=apply(test.data.set,2,replacement)
test.data.2 <- as.data.frame(test)
replacement<-function(x){
x=replace(x,which(x=='0.1'), "MAYBE")
x=replace(x,which(x=='0'), "NO")
x=replace(x,which(x=='1'), "YES")
x=replace(x,which(x=='2'), "YES")
}
test.data.3=apply(test.data.2,2,replacement)
test.data.4 <- as.data.frame(test.data.3)
Набор данных после запуска
Location sample1 sample 2 sample 3
chr1:1234 YES YES NO
chr2:5678 NO NO NO
chr3:2345 YES YES YES
chr4:6789 YES YES MAYBE
Так что то, что я написал выше, в настоящее время работает для меня.Тем не менее, у меня есть новый набор данных, который содержит около 300 выборок (столбцов) и около ... Я даже не уверен, легко 500 миллионов строк, поэтому мне нужно изменить более миллиарда "ячеек".Я попытался запустить это на кластере с 256G памяти и это просто время ожидания.Я знаю, что то, что я написал выше, далеко не самый «плавный» способ изменения моих данных.У кого-нибудь есть предложения по упорядочению этого процесса?Я чувствую, что у dplyr должен быть какой-то способ сделать это.
Любая помощь будет потрясающей!Не стесняйтесь задавать любые вопросы, если вам нужны разъяснения.