如果我要导入R的数据看起来像这样
kljflksdjfklsdjfsdfj
dfjkdsjfkdjfkldjfkjd
djfkdsjfkdjfjsdfjsdk
dsjfkjsdfkdjsfkjdskj
我希望以这样的方式阅读它们,我得到一个矩阵,每个符号都是一列(第一列是k,d,d,d),每个新行一行(4行)在我的情况下)。我怎么能这样做?
答案 0 :(得分:2)
您可以使用scan
来阅读文件:
text <- "kljflksdjfklsdjfsdfj
dfjkdsjfkdjfkldjfkjd
djfkdsjfkdjfjsdfjsdk
dsjfkjsdfkdjsfkjdskj"
dat <- scan(textConnection(text), "")
# dat <- scan("file.name", "")
函数strsplit
将字符串拆分为单个字符。 rbind
用于创建矩阵:
do.call(rbind, strsplit(dat, ""))
结果:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
[1,] "k" "l" "j" "f" "l" "k" "s" "d" "j" "f" "k" "l" "s" "d" "j" "f" "s" "d" "f" "j"
[2,] "d" "f" "j" "k" "d" "s" "j" "f" "k" "d" "j" "f" "k" "l" "d" "j" "f" "k" "j" "d"
[3,] "d" "j" "f" "k" "d" "s" "j" "f" "k" "d" "j" "f" "j" "s" "d" "f" "j" "s" "d" "k"
[4,] "d" "s" "j" "f" "k" "j" "s" "d" "f" "k" "d" "j" "s" "f" "k" "j" "d" "s" "k" "j"
答案 1 :(得分:2)
您也可以使用read.fwf
。当然,将“yourFileName”替换为实际文件的名称。
read.fwf(file="yourFileName",
widths = rep(1, nchar(readLines("yourFileName", n=1))))
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
# 1 k l j f l k s d j f k l s d j f s d f j
# 2 d f j k d s j f k d j f k l d j f k j d
# 3 d j f k d s j f k d j f j s d f j s d k
# 4 d s j f k j s d f k d j s f k j d s k j
此处的输出为data.frame
。