2014-01-06 65 views
2

如果我要导入到R上的数据看起来像这样读字符串转换成表格

kljflksdjfklsdjfsdfj 
dfjkdsjfkdjfkldjfkjd 
djfkdsjfkdjfjsdfjsdk 
dsjfkjsdfkdjsfkjdskj 

,我想以这样的方式,我得到一个矩阵出它与每个星座读他们成为一列(第一列将是k,d,d,d),每个新行都是一行(在我的情况下是4行)。我怎样才能做到这一点?

回答

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" 
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