【问题标题】:Read string into a table将字符串读入表格
【发布时间】:2014-01-06 16:40:52
【问题描述】:

如果我要导入到 R 中的数据看起来像这样

kljflksdjfklsdjfsdfj
dfjkdsjfkdjfkldjfkjd
djfkdsjfkdjfjsdfjsdk
dsjfkjsdfkdjsfkjdskj

我想以这样一种方式阅读它们,即我从中得到一个矩阵,每个符号是一列(第一列是 k、d、d、d),每一行是一行(4 行在我的情况下)。我该怎么做?

【问题讨论】:

    标签: r read.table


    【解决方案1】:

    您可以使用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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-25
        • 1970-01-01
        • 2011-01-21
        • 1970-01-01
        相关资源
        最近更新 更多