比方說,我有一個數據幀中的R如下:[R清洗和重新排序的名字/在數據幀序列號
Data <- data.frame("SerialNum" = character(), "Year" = integer(), "Name" = character(), stringsAsFactors = F)
Data[1,] <- c("983\n837\n424\n ", 2015, "Michael\nLewis\nPaul\n ")
Data[2,] <- c("123\n456\n789\n136", 2014, "Elaine\nJerry\nGeorge\nKramer")
Data[3,] <- c("987\n654\n321\n975\n ", 2010, "John\nPaul\nGeorge\nRingo\nNA")
Data[4,] <- c("424\n983\n837", 2015, "Paul\nMichael\nLewis")
Data[5,] <- c("456\n789\n123\n136", 2014, "Jerry\nGeorge\nElaine\nKramer")
我想要做的是以下幾點:
- 分手了每個字符串的名稱和序列號的每個字符串,以便它們是它們自己的向量(或字符串向量列表)。
- 消除任何一組載體中的任何字符
"NA"
或任何由"...\n "
表示的空白空間。 - 按字母順序對每個名稱列表重新排序,並根據相同的排列對相應的序列號重新排序。
- 以最初的相同方式連接每個矢量(我通常使用
paste(., collapse = "\n")
來完成此操作)。
我的問題是如何做到這一點,而不使用for循環。什麼是面向對象的方式來做到這一點?作爲這個方向的第一次嘗試,我最初通過命令LIST <- strsplit(Data$Name, split = "\n")
創建了一個列表,並且從這裏我需要一個for循環來查找名稱的排列,這看起來像一個不會根據我的實際數據進行縮放的進程。此外,一旦我列出名單LIST
我不知道我如何去除NA
符號或空格。任何幫助表示讚賞!
謝謝您的回答,和對不起它採取了這麼長時間才做出反應。我正在尋找的最終結果是看起來像原始數據框,除了按字母順序排列和清理。如果我給出的樣本數據集實際上只是一個較大數據框的摘錄,那麼您會如何做到這一點,但是我想在更大的數據框上執行此操作,同時保持所有其他字段不變? – Mnifldz