Как заменить символы / имена числами, которые находятся в нескольких столбцах и строках в кадре данных в R? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть фрейм данных, состоящий из родословных, с идентификаторами столбцов, DADID, MOMID, SEX и несколькими другими для использования в r пакетах kinship2 и optiSel.В настоящее время мои данные находятся в факторной форме (идентификаторы описываются именами отдельных лиц, а не числами), и это вызывает проблему при попытке отформатировать полученные родословные из optiSel.

Я не уверен, насколько кто-либо из вас знаком с optiSel, но у него есть функция subPed, которая создает небольшую родословную из большого набора данных и использует значения из пакета Kinship2 для настройки эстетики построенного графика.родословная.

Моя проблема возникла, когда я попытался построить более крупную родословную, потому что имена значительно перекрывали друг друга и делали невозможным чтение.Я не мог отрегулировать ширину или длину текста, а также сам график из-за несовместимости требований к данным для kinship2 и optiSel.Родство2 Я считаю, что идентификаторы должны быть в числовой форме, поэтому моя цель состоит в том, чтобы найти быструю функцию изменения моих персонажей на числа, которые бы соответствовали всем отношениям в моих родословных.
В частности, у меня есть один человек встрока в столбце ID, которая появляется в другой строке в столбце DADID, и когда я изменяю их имя на число, мне нужно, чтобы эти числа были равны (в соответствии с идентичностью этого символа).

Кажется, я не могу найти быстрый способ сделать это, поскольку в моих данных по родословной пока более 700 человек.

sped<-subPed(pedigree, keep = c("Customs Ajax AAD"), prevGen = 2, succGen = 2)
pedplot(sped, cex = 0.2)

#The resulting pedigree from this is extremely small, but I can't make it any larger to see the names because there isn't sufficient room

pedplot(sped, cex = 0.2, width = 8)

#nothing changes because the 'width' aest isn't compatible

#attempt to plot with kinship2 instead:
plot.pedigree(sped, id=sped$Indiv)
Error in plot.pedigree(sped, id = sped$Indiv) : Wrong length for id


#trying to change characters to numbers:

pednum<-as.numeric(pedigree$ID)

#this only changes those of one column, and doesn't integrate it

#rename and replace functions don't work
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...