由于我想將多個資料幀系結在一起以檢索一個大幀,因此我使用 mget(ls(pattern="")) 按模式系結行。這通常很有效,除了以下示例:
library(dplyr)
`Accuracy 1` <- data.frame (Product = "10001",
Bias = 0.4,
Variance = 0.1,
Disturbance = 0.5)
`Accuracy 2` <- data.frame (Product = "20001",
Bias = 0.1,
Variance = 0.1,
Disturbance = 0.8)
`Accuracy_3` <- data.frame (Product = "30001",
x = "test",
y = 0.1,
z = 0.2,
w = "why")
acc_output <- mget(ls(pattern="Accuracy *")) %>%
bind_rows()
如您所見,其中一個資料框 (Accuracy_3) 顯示不同的名稱模式。我希望當我在單詞 Accuracy 之后用空格定義模式時,這個框架會被忽略,只有前兩個框架??會被系結在一起,
然而,這不是這里發生的事情。即使我用空格定義模式,系結也會為帶下劃線的模式完成。為什么會發生這種情況,我該如何避免?
uj5u.com熱心網友回復:
中的模式ls是一個正則運算式(參見例如https://stat.ethz.ch/R-manual/R-devel/library/base/html/regex.html)。
在你的格局,Accuracy *中,*被解釋為零次或多個前面的字符的出現次數,即空間。由于Accuracy_有零個空格,它與模式匹配。
您可以改為使用Accuracy 或Accuracy [1-2]。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/349036.html
