簡體   English   中英

R - 如何在循環中寫入特定列:沒有任何結果

[英]R - How to write in specific column in a loop : nothing comes out

我正在開發一個 R 程序,以在循環中自動在特定單元格、特定行中寫入文本。

每個 d$data.frame 被切割成最多 150 行目的是將文檔分成 50 行的 3 個部分,以便將名稱放在第 5 列中。(為特定的人分配任務)

我們擁有的是:

d:通過拆分龐大的數據庫完成的data.frames列表

  • w: d $的長度
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 是由 `d <- split(Scrapping,r) 給出的 5 個data.frame的列表

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM