我在行之間有一個文本文件,其元素不相等。有時第二列包含數據,有時包含NA
,有時根本沒有記錄。我知道,如果連續只有4個元素,我應該在第二列中插入一個NA
作爲元素。但是,我不知道該怎麼做。下面是一個例子的數據集:將NA插入讀取爲字符串的數據中
abc.def ghi.jkl mno pqr A*
bc.def NA no qr A
c-e.ef non qrr AE
fg.gg no qr E
aa.bb cc.dd ee ff A*
下面是所期望的結果:
desired.result <- read.table(text = '
Name1 Name2 Name3 Name4 Status
abc.def ghi.jkl mno pqr A*
bc.def NA no qr A
c-e.ef NA non qrr AE
fg.gg NA no qr E
aa.bb cc.dd ee ff A*
', header = TRUE)
我還沒有得到遠,但我已經能夠分割數據並將其輸入到與一個matrix
以下代碼。當然,這些數據是錯位的。
setwd('c:/users/mmiller21/simple R programs')
my.data <- readLines('name_data.txt')
matrix(unlist(strsplit(unlist(my.data), " ")), ncol=5, byrow=TRUE)
# [,1] [,2] [,3] [,4] [,5]
# [1,] "abc.def" "ghi.jkl" "mno" "pqr" "A*"
# [2,] "bc.def" "NA" "no" "qr" "A"
# [3,] "c-e.ef" "non" "qrr" "AE" "fg.gg"
# [4,] "no" "qr" "E" "aa.bb" "cc.dd"
# [5,] "ee" "ff" "A*" "abc.def" "ghi.jkl"
不知何故我應該使用strsplit(unlist(my.data), " ")
後計數元件的數量然後插入NA
如在每一行中僅包含四個元件的第二元件。然後將數據輸入到矩陣中。感謝您的幫助。我寧願基地R.
魔'is.na(DAT [[5]])< - DAT [[5]] ==」 「'! – agstudy
這相當於@ agstudy's,除了他允許最後一列包含「NA」。 – flodel
迪寧,你改了你的名字! (我一段時間沒有去過這個網站。) –