0

私は次のような文字列を持っています

c <- "Gary INMetro Chicago IL Metro"

私がやっている

d <- strsplit(c,"Metro")

取得するため

> d[1]
[[1]]
[1] "Gary IN" " Chicago IL "

しかし、2つの異なる要素が必要で、csvファイルに次のように書き込みたい

 City,State
 Gary,IN
 Chicago,IL

どうやってするか?どんな助けでも大歓迎です。

4

2 に答える 2

2

最初のステップは、strsplit を非公開にすることです

  d <- unlist(strsplit(c,"Metro"))

したがって、単一行のベクトルが得られます。

  [1] "Gary IN"      " Chicago IL "

次に、ベクトルを反復処理して文字列をトリミングする必要があります。

   trim <- function (x) gsub("^\\s+|\\s+$", "", x)
   for(i in 1:length(d)) { print(trim(d[i])) }

   [1] "Gary IN"
   [1] "Chicago IL"

3 番目に、データフレームを作成する必要があります (完全なコード)

# Function to trim the fields
trim <- function(x) { gsub("^\\s+|\\s+$", "", x) }
# Dataset
c <- "Gary INMetro Chicago IL Metro"
# Split text rows 
d <- unlist(strsplit(c,"Metro"))
# Build an empty frame
frame <- data.frame()
# Split columns and collect the rows
for(i in (1:length(d)) ) { 
 # Split columns 
 r <- unlist(strsplit(trim(d[i])," "))
 # Collect rows
 frame[i,1] <- r[1]; 
 frame[i,2] <- r[2]; 
}
# Set table names
names(frame) <- c("City","State");

結果

     City State
1    Gary    IN
2 Chicago    IL

せめて保管して

write.csv(frame,"test.frm");

于 2014-02-25T21:35:16.207 に答える