該方法使用d_ply
函數在處理之前分離動物。請注意,默認分隔符(空格)可以更改。
是否需要摺疊記錄?例如,如果dog
對於steak
有兩行,它們是否應以某種方式組合?如果是這樣,plyr方法應該能夠適應這一點,稍作修改即可。
ProcessAnimal <- function(d, fileLocation, delimiter=" ") {
cat(paste0("<", d$Animal[1], ">\n"), file=fileLocation, append=TRUE, sep="")
cat(sapply(seq_len(nrow(ds)), function(i) {
paste0(paste0(ds[i, c("Food", "FoodID")], collapse=delimiter), sep="\n")
}), file=fileLocation, append=TRUE, sep="")
cat(paste0("</", d$Animal[1], ">\n"), file=fileLocation, append=TRUE, sep="")
}
plyr::d_ply(.data=ds, .variables="Animal", .fun=ProcessAnimal, fileLocation="PetFood.txt")
文本文件看起來像:
<cat>
steak 100
beef 200
poo 001
milk 020
steak 100
beef 200
</cat>
<dog>
steak 100
beef 200
poo 001
milk 020
steak 100
beef 200
</dog>
完美!非常感謝你。 –