有沒有辦法檢查數據框是否為空,如果是,則添加 NA 行?

用戶35131

例如,我有一個內部沒有任何內容的數據框,但我需要它來運行完整代碼,因為它通常希望有數據。我試過這個,但沒有用

ifelse(dim(df_empty)[1]==0,rbind(Shots1B_empty,NA))
chemdork123

簡單的問題,OP,但實際上很有趣。您的代碼的所有元素都應該可以工作,但問題是當您按原樣運行時,它將返回一個列表,而不是一個數據框。讓我用一個例子告訴你:

growing_df <- data.frame(
  A=rep(1, 3),
  B=1:3,
  c=LETTERS[4:6])

df_empty <- data.frame()

如果我們按照您所寫的進行評估,您將得到:

df <- ifelse(dim(df_empty)[1]==0, rbind(growing_df, NA))

df導致列表:

> class(df)
[1] "list"
> df
[[1]]
[1]  1  1  1 NA

代碼“有效”,但結果類df是錯誤的。這很奇怪,因為這有效:

> rbind(growing_df, NA)
   A  B    c
1  1  1    D
2  1  2    E
3  1  3    F
4 NA NA <NA>

答案是使用ifandelse而不是ifelse(),正如@akrun 在他們的回答中指出的那樣。原因,如果你深入到發現文檔ifelse()

ifelse 返回一個與 test 具有相同形狀的值,其中填充了從 yes 或 no 中選擇的元素,具體取決於 test 的元素是 TRUE 還是 FALSE。

由於dim(df_empty)[1]和/或nrow(df_empty)都是向量,因此結果將保存為列表。這就是為什麼if {}有效,但不是ifelse()在這裡。rbind()結果通常是一個數據幀,但是df分配時存儲到的結果的類ifelse()是根據測試元素決定的,而不是結果元素。將其與if{}語句進行比較,語句的結果元素取決於輸入到 中的任何表達式{}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有沒有辦法根據行/列為數據框繪製熱圖?

有沒有辦法將每個結果添加到數據框的一行中?

有沒有辦法只在 R 的數據框中保留重複的行?

有沒有辦法計算數據框中一行中所有值的 Z 分數?

RobotFrameWork:有沒有辦法在運行暫停的情況下檢查 report.html?

有沒有辦法在文件中添加新行?

有沒有辦法使用 SvelteKit 加載函數進行動態查詢?

在 Django 的 ORM 中,有沒有辦法檢測代碼是否在事務內執行?

有沒有辦法在 dplyr 的 na_if 函數中列出值?

如何对所有 NA 为 0/NA 的行求和

删除所有列值也是 NA 的 NA 行

有沒有辦法用只出現在一行的數據來識別同一日期內的所有行?

如果行中至少有一个 Na,则使行 Na

有沒有辦法列出所有nodejs函數執行時間?

排除列具有NA值的行

删除具有数字 = NA 的行

按所有值為 NA 的組過濾行

PHP有沒有辦法檢查後面是否有數字

熊猫根据索引添加NA行

在两行中消除具有更多NA的行

有沒有辦法在 Infra 元數據表中獲得當前運行的 Informatica 工作流的估計完成時間

有沒有辦法在 R 中的數據間隙之間對列中的值進行分組?

有沒有辦法在 Django 中使用會話持久化數據庫連接運行服務器?

有沒有辦法通過對 SAS 中另一個變量的數據進行分組來創建新變量?

我的代碼是否因為互聯網連接問題而崩潰?如果是這樣,有沒有辦法在嘗試 api 之前製作一段代碼來檢查連接?

检查数据框中是否存在带有所有“ NA”的行

合并包含NA的数据框中的行以形成完整的行

有沒有辦法避免重複行

计算列中的非na行与NA行的有效方法