목록에 해당하는 행을 추출하고 각 출력을 R의 별도 Excel 파일에 저장하고 싶습니다.
#sample data
x <- c("anna", "matt", "anna", "david", "anna", "jane")
data <- data.frame("name" = x,
"case ref" = letters[1:6])
이름 | 케이스 참조 |
---|---|
안나 | NS |
매트 | NS |
안나 | 씨 |
데이비드 | NS |
안나 | 이자형 |
여자 | NS |
위의 데이터에서 추출하려는 이름 목록이 있습니다.
#name list
namelist <- c("matt", "david", "anna")
나는 그렇게하기 위해 루프를 작성했습니다.
for (i in namelist) {
answer <- data[is.element(data$name, i), ]
print(answer)
}
그러나 각 출력을 해당 이름의 Excel 파일에 저장하는 방법이 궁금합니다.
아래에서 각각의 해당 이름으로 파일을 저장하는 방법을 알아냈습니다.
names(namelist) <- namelist
for (j in seq_along(namelist)) {
write.xlsx(answer, paste(names(namelist)[j],".xlsx"))
}
기본적으로 위의 2개의 for 루프를 결합해야 하지만 작동 방법을 모르겠습니다.
names(namelist) <- namelist
for (i in namelist) {
for (j in seq_along(namelist)) {
answer <- data[is.element(data$name, i), ]
write.xlsx(answer, paste(names(namelist)[j],".xlsx"))
}
}
오류는 이제 모든 3개의 파일이 첫 번째 출력과 함께 저장된다는 것입니다.
Error in saveWorkbook(wb, file = file, overwrite = overwrite) :
File already exists!
내가 필요로하는 것은 파일 이름이 "matt.xlsx"이고 데이터가 처음 저장된 출력이
이름 | 케이스 참조 |
---|---|
매트 | NS |
파일 이름이 "anna.xslx"이고 데이터가 마지막으로 저장된 출력은 다음과 같습니다.
이름 | 케이스 참조 |
---|---|
안나 | NS |
안나 | 씨 |
안나 | 이자형 |
미리 감사합니다!
답은 생각보다 쉽습니다. 하나의 루프만 작업을 수행합니다(또는 내가 놓친 부분).
x <- c("anna", "matt", "anna", "david", "anna", "jane")
data <- data.frame("name" = x, "case ref" = letters[1:6])
namelist <- c("matt", "david", "anna")
for (i in namelist) {
answer <- data[is.element(data$name, i), ]
write.xlsx(answer, paste(i,".xlsx"))
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다