2016-08-05 2 views
1

I持っている(私はマトリックス型に固執していない - それはまたdata.frame、...することができる)、次のマトリック:私はそれが数行のコードを持つ文字の行列を別の行列に変換するにはどうすればよいですか?

 V1 V2 V3 V4 
[1,] "Jan" "Jan" "Jul" "Jul" 
[2,] "01" "01" "06" "06" 
[3,] "Dec" "Jun" "Dec" "Dec" 
[4,] "31" "30" "31" "31" 
[5,] "00" "12" "09" "09" 
[6,] "00" "00" "00" "00" 
[7,] "24" "18" "19" "19" 
[8,] "00" "00" "00" "00" 
のように見えるようにするにはどうすればよい

df <- structure(c("Jan-01", "Dec-31", "00-00", "24-00", "Jan-01", "Jun-30", 
"12-00", "18-00", "Jul-06", "Dec-31", "09-00", "19-00", "Jul-06", 
"Dec-31", "09-00", "19-00"), .Dim = c(4L, 4L), .Dimnames = list(
    NULL, c("V1", "V2", "V3", "V4"))) 

#  V1  V2  V3  V4  
# [1,] "Jan-01" "Jan-01" "Jul-06" "Jul-06" 
# [2,] "Dec-31" "Jun-30" "Dec-31" "Dec-31" 
# [3,] "00-00" "12-00" "09-00" "09-00" 
# [4,] "24-00" "18-00" "19-00" "19-00" 

これは、各セルを「 - 」で分割し、2行のベクトルに変換することを意味します。
hereの方法で試しましたが、結果は良好ではありませんでした。ここでt(str_split_fixed(new_standard, "\\-", 8))

答えて

1

が一つの解決策である:

library(stringr) 
matrix(t(str_split_fixed(df, "-", 2)), ncol = 4) 
#  [,1] [,2] [,3] [,4] 
# [1,] "Jan" "Jan" "Jul" "Jul" 
# [2,] "01" "01" "06" "06" 
# [3,] "Dec" "Jun" "Dec" "Dec" 
# [4,] "31" "30" "31" "31" 
# [5,] "00" "12" "09" "09" 
# [6,] "00" "00" "00" "00" 
# [7,] "24" "18" "19" "19" 
# [8,] "00" "00" "00" "00" 
+0

を使用することができ、私は '行列(T(にそれを変更しましたstr_split_fixed(df、 " - "、2))、nrow = 8) 'となります。 – Christoph

2

列の数が私の場合には固定されていないと我々はscan

base Rから
matrix(scan(text=df, sep="-", what ="", quiet=TRUE), ncol=4) 
#  [,1] [,2] [,3] [,4] 
#[1,] "Jan" "Jan" "Jul" "Jul" 
#[2,] "01" "01" "06" "06" 
#[3,] "Dec" "Jun" "Dec" "Dec" 
#[4,] "31" "30" "31" "31" 
#[5,] "00" "12" "09" "09" 
#[6,] "00" "00" "00" "00" 
#[7,] "24" "18" "19" "19" 
#[8,] "00" "00" "00" "00" 
関連する問題