저는 R에 익숙하지 만, 이것이 답을 찾을 수 없었던 특정 문제 인 것 같습니다.R-rbind 단일 행렬 행렬
는 내 프로그램이 일부 데이터를 읽어는, 나는 그것을 통과 열 번호의 벡터를 기반으로 여러 데이터 프레임 중 하나에 데이터의 특정 열을 rbinds, 그래서 이런 식으로 뭔가 :
filename <- c("vector", "full", "of", "filenames")
colVal <- (32)
InMat <- data.frame()
for (i in 1:length(filename)){
file <- read.table(filename[i], header=TRUE, fill=TRUE, stringsAsFactors=FALSE)
InMat <- rbind(InMat, file[c(2:dim(file)[1], colVal)])
#...other matricies...
}
내 문제의 거짓말 원하는 열이 하나 뿐인 경우, 즉 colVal은 하나의 값을 취합니다. 이 경우 InMat은 본질적으로 내가 필요로하는 것에서 바뀌 었습니다. 나쁘게, 다중 파일을 읽을 때, 그것은 옮겨 놓은 원하는 열을 rbind합니다. 그래서 나는 각 파일의 각 원하는 열에 행이있는만큼 많은 열을 가지고 읽고있는 파일의 수와 같은 수의 행을 얻습니다.
두 개의 원하는 열이있는 경우 (예 : colVal이 두 개 이상의 값을 가짐) 예상대로 작동합니다 (예 : 열이 InMat에 열로 저장되고 각 추가 파일의 열이 저장 됨). 이하).
내 질문에 왜 하나의 원하는 열 값이 전달되면 rbind가 다르게 작동하며 쉬운 방법 (읽기만하면 clunky if 또는 for 루프를 검사하지 않음)이 발생하면이를 피하려면 어떻게해야합니까?
감사합니다.
어떤 이유로 코드가 느리게 실행 되더라도 제대로 작동합니다. –
코드를 느리게 만드는 부분은 무엇입니까? –
R GUI 콘솔에서 코드를 실행하면 lapply의 첫 번째 호출이 느려지는 것처럼 보입니다. 2 ~ 5 초 정도 멈 춥니 다. (참고로 두 번째 추천 코드를 사용하고 있습니다.) –