[英]R - How to write in specific column in a loop : nothing comes out
我正在開發一個 R 程序,以在循環中自動在特定單元格、特定行中寫入文本。
每個 d$data.frame 被切割成最多 150 行目的是將文檔分成 50 行的 3 個部分,以便將名稱放在第 5 列中。(為特定的人分配任務)
我們擁有的是:
d:通過拆分龐大的數據庫完成的data.frames列表
for (i in 1:w) {
if (nrow(102<d[[i]])&nrow(d[[i]])<150){
d[[i]][1:50,c("Contact Owner")] <- 'Luc'
d[[i]][51:101,c("Contact Owner")] <- 'Bertha'
d[[i]][102:150,c("Contact Owner")] <- 'Marc'
} else
if (nrow(51<d[[i]])&nrow(d[[i]])<101){
d[[i]] [1:50,c("Contact Owner")] <- 'Luc'
d[[i]] [51:101,c("Contact Owner")] <- 'Bertha'
} else
if (nrow(1<d[[i]])&nrow(d[[i]])<50){
d[[i]] [1:nrow(d[[i]]),c("Contact Owner")] <- 'Luc'}
break
}
我一直讓這個錯誤消息參數的長度為零
提前感謝您的所有幫助:)
我無法公開我正在處理的文件,因為它們是私人數據,但這里是我可以提供的當前詳細信息
d$1, d$2, d$3, d$4 是 150x16 d$5 是 10x16`
在每個 d$i 的第 5 列中,我想寫名稱第 1 行 -50:我想要 Luc 第 51 行 -101:Bertha 第 102 行 -150:Marc
然而最后一個 d$i data.frame 通常會少於 150 行,所以我只想將名稱放在有其他數據的地方。
在使用gl
創建分組向量后,這是一個更簡單的split
選項
d1 <- transform(d, newcol = paste0('name', as.integer(gl(nrow(d), 50, nrow(d)))))
split(d1, d1$newcol)
我最終能夠找到一種方法來做到這一點:
w <- length(d)
for (i in 1:w) {
d[[i]][1:50,c("Contact Owner")] = "Luc"
d[[i]][51:101,c("Contact Owner")] = "Bertha"
d[[i]][102:150,c("Contact Owner")] = "Marc"
d[[i]] <- with(d[[i]], d[[i]][!(`First Name` == "" | is.na(`First Name`)), ])
}```
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.