【发布时间】:2023-04-09 23:37:01
【问题描述】:
我在 R 中有一个 data.frame。data.frame 有三列:R、G、B,分别代表红色、绿色和蓝色的颜色代码。我想用“灰色”颜色过滤所有行,其中 R == G == B。这是我的代码:
red <- c("30", "68", "28", "60", "90", "40", "10", "C8", "88", "38",
"08", "00", "D8", "20", "F8", "18", "B0", "F8", "A8", "F8", "F8",
"F8", "F8", "F8", "F8", "F8", "F8", "F8", "F8", "F8", "F8", "F8",
"F8", "F8", "F8", "F8", "F8", "D8", "F8", "F8", "E8", "F8", "B8",
"F8", "F8", "C8", "E8", "B0", "98", "E0", "F8", "F8", "78", "90",
"68", "A8", "D0", "88", "F8", "48", "F8", "60", "30", "80", "58",
"C0", "F8", "08", "28", "50", "00", "20", "A0", "00", "18", "70",
"00", "00", "00", "40", "F0", "70", "00", "00", "00", "00", "00",
"00", "F8", "F8", "F0", "F8", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00")
green <- c("30", "68", "28", "60", "90", "40", "10", "C8", "88", "38",
"08", "00", "D8", "20", "28", "18", "B0", "08", "A8", "58", "20",
"70", "88", "38", "18", "50", "B0", "68", "98", "80", "48", "D0",
"A8", "10", "C8", "40", "E8", "F8", "78", "A0", "F8", "C0", "F8",
"E0", "30", "F8", "E8", "F8", "F8", "F8", "90", "D8", "F8", "F8",
"F8", "F8", "F8", "F8", "00", "F8", "B8", "F8", "F8", "F8", "F8",
"F8", "60", "F8", "F8", "F8", "F0", "F8", "F8", "E8", "F8", "F8",
"D8", "A8", "C8", "F8", "F8", "70", "80", "B8", "98", "68", "F8",
"48", "F8", "F0", "F0", "F8", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00")
blue <- c("30", "68", "28", "60", "90", "40", "10", "C8", "88", "38",
"08", "00", "D8", "20", "00", "18", "B0", "00", "A8", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "E8", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "08", "00", "00", "10", "00", "00",
"20", "50", "30", "00", "00", "70", "78", "40", "60", "90", "00",
"B0", "00", "00", "F0", "F8", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00", "00", "00", "00", "00", "00", "00", "00",
"00", "00", "00", "00")
RGB <- data.frame("R"=red, "G"=green, "B"=blue)
grays <- subset(RGB,(R==G & R==B & G==B))
但是在最后一个命令中我得到一个错误:Error in Ops.factor(R, B) : level sets of factors are different
我也尝试了子集命令:
grays2 <- RGB[(RGB$R==RGB$G & RGB$R==RGB$B & RGB$G==RGB$B),]
但它给了我同样的错误信息。
我在这里做错了什么?
【问题讨论】:
-
尝试将
RGB与stringsAsFactors=FALSE... -
最小可重现示例
-
RGB <- data.frame("R"=red, "G"=green, "B"=blue, stringsAsFactors=FALSE)工作!我不知道为什么,但它解决了我的问题。