문제

나는 문자열이

c <- "Gary INMetro Chicago IL Metro"
.

나는

하고있다.
d <- strsplit(c,"Metro")
.

를 얻으려면

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

그러나 두 개의 다른 요소를 원하고 CSV 파일에

로 쓰고 싶습니다.
 City,State
 Gary,IN
 Chicago,IL
.

어떻게해야합니까?어떤 도움이 감사합니다.

도움이 되었습니까?

해결책

시도 :

read.table(text=gsub('Metro', '\n', c), col.names=c('City', 'State'))
#      City State
# 1    Gary    IN
# 2 Chicago    IL
.

다른 팁

첫 번째 단계 IST는 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"
.

세 번째 데이터 프레임 (완료 코드)

을 빌드해야합니다.
# 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 (프레임, "test.frm");

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top