2

次の構造のフォーマットされていない変数名を持つテキストデータファイルを読み取るのに助けが必要です:

     a_ID            =    259412258      494776
     a_SID            =     2081
     a_cor       =          434
     a_FAT          =        25000       50000       75000      100000
     125000      150000      175000      200000      225000      250000
     275000      300000      325000      350000      375000      400000
     425000      450000      475000      500000      525000      550000
     575000      600000      625000      650000      675000      700000
     725000      750000      775000      800000      825000      850000
     875000      900000      925000      950000      975000
     a_loc                 =   2147483647  2147483647   -73356703   -73355202
     -73353701   -73352130   -73350632   -73349210   -73347648   -73346229
     a_soc                  =   2147483647  2147483647   272263158   272261759
     272260359   272258876   272257473   272256153   272254668   272253346

各変数の長さは等しくなく、 a_ で始まります。名前で特定の変数を引き出すための追加ポイント。長さが等しくない場合は、NA で埋めることができます。scan() を試してみました

     x <- scan(file, what=list(NULL, name=character()))

また、 x = read.table(file, header = T, sep = ",") は、単一の変数を持つデータフレームを返します。rephape split 関数について読みましたが、上記の場合の使用方法を理解できませんでした。どんな助けでも大歓迎です。

4

2 に答える 2

1

名前のない行に改行がない場合は、非常に簡単です。

Lines <- readLines(textConnection("a_ID            =    259412258      494776
      a_SID            =     2081
      a_cor       =          434
      a_FAT          =        25000       50000       75000      100000       125000      150000      175000      200000      225000      250000      275000      300000      325000      350000      375000      400000      425000      450000      475000      500000      525000      550000      575000      600000      625000      650000      675000      700000     725000      750000      775000      800000      825000      850000     875000      900000      925000      950000      975000
      a_loc                 =   2147483647  2147483647   -73356703   -73355202      -73353701   -73352130   -73350632   -73349210   -73347648   -73346229
      a_soc                  =   2147483647  2147483647   272263158   272261759      272260359   272258876   272257473   272256153   272254668   272253346") )

slines <- strsplit(Lines, "=")

List <- vector("list", length(Lines))
install.packages('gdata')
names(List) <- gdata::trim(sapply(slines,"[", 1))
sapply(seq_along(List) , 
      function(items) List[[items]] <<- 
                      scan(textConnection(slines[[items]][2]) ) )

#--------------------------------
 List
$a_ID
[1] 259412258    494776

$a_SID
[1] 2081

$a_cor
[1] 434

$a_FAT
 [1]  25000  50000  75000 100000 125000 150000 175000 200000 225000 250000 275000 300000 325000 350000 375000
[16] 400000 425000 450000 475000 500000 525000 550000 575000 600000 625000 650000 675000 700000 725000 750000
[31] 775000 800000 825000 850000 875000 900000 925000 950000 975000

$a_loc
 [1] 2147483647 2147483647  -73356703  -73355202  -73353701  -73352130  -73350632  -73349210  -73347648
[10]  -73346229

$a_soc
 [1] 2147483647 2147483647  272263158  272261759  272260359  272258876  272257473  272256153  272254668
[10]  272253346
于 2013-08-25T04:32:43.490 に答える