我在行之间有一个文本文件,其元素不相等。有时第二列包含数据,有时包含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
迪宁,你改了你的名字! (我一段时间没有去过这个网站。) –