는 대답은 열에 분리의 수가 일치 여부를 경우에 따라 달라질 수 있습니다. 그 숫자가 일치하면 대답은 더 솔직합니다. 여기 Andrie의 strsplit
대답 떨어져 그 건물을 하나의 대답 : 위에서 본질적으로 어떻게 colsplit.character
패키지 reshape
에서 구현이며 적절한 이름을 부여 할 수 강제로 당신을 위해 더 좋은 옵션이 될 수 있습니다
dat <- read.csv("yourData.csv", header=FALSE, stringsAsFactors = FALSE)
#If always going to be a consistent number of separators
dat <- cbind(dat, do.call("rbind", strsplit(dat[, 3], ":")))
V1 V2 V3 V4 1 2 3
1 Deamon Host 1:02:04 aaa.03 1 02 04
2 Pixe Paradigm 1:03:05 11.us 1 03 05
하는 것으로.
구분 기호의 수가 다른 경우 rbind.fill
을 사용하는 것은 plyr
패키지의 옵션입니다. rbind.fill
은 조금 짜증나는 data.frames를 기대하며, 행렬로 먼저 변환하지 않고 data.frame 행을 얻는 방법을 알아낼 수 없으므로보다 효율적으로 만들 수 있다고 상상할 수 있지만 기본적인 아이디어는 다음과 같습니다.
library(plyr)
x <- c("1:2:4", "1:3:5:6:7")
rbind.fill(
lapply(
lapply(strsplit(x, ":"), matrix, nrow = 1)
, as.data.frame)
)
V1 V2 V3 V4 V5
1 1 2 4 <NA> <NA>
2 1 3 5 6 7
위의 그림과 같이 cbind
이 될 수 있습니다.
세 번째 열에는 항상 콜론으로 구분 된 세 개의 숫자가 포함됩니까? 아니면 3 개 이상 가질 수 있습니까? –
가끔은 3 개 이상의 숫자를 가질 수 있습니다. – damola
':'의 수에 대한 답을보십시오. * nix OS가 무기고에있을 경우 'sed'또는 'awk'와 같은 것을 처리 할 수있는 다른 사전 처리 도구를 볼 수도 있습니다. – Chase