私は次のような文字列を持っています
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
どうやってするか?どんな助けでも大歓迎です。
最初のステップは、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");