我有两个向量
v <- (TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE)
named.v <- (TRUE = "#FF0000FF", FALSE="#00FF00FF", NA="0000FFFF")
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取与V中的值关联的颜色。
我尝试这样做
named.v[v]
Run Code Online (Sandbox Code Playgroud)
但这一切都是回报
TRUE FALSE <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
"#FF0000FF" "#00FF00FF" "#0000FFFF" NA NA NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)
我真的被困住了,无法解决。谢谢您的帮助!
我们需要匹配一个字符集而不是逻辑。在这里,names“ named.v”的character类是类(尽管在创建的示例中存在不一致之处-通常是这种情况)
named.v[as.character(v)]
# TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
#"#FF0000FF" "#FF0000FF" "#FF0000FF" "#FF0000FF" "#FF0000FF" "#FF0000FF" "#FF0000FF" "#FF0000FF" "#FF0000FF" "#FF0000FF"
Run Code Online (Sandbox Code Playgroud)
现在,让我们看一下OP代码中的问题,“ v”为logical,TRUE表示应选择该值,但是“ named.v”的长度为3,而逻辑向量的长度为10,因此在前3个之后是从“ named.v”中选择的,没有任何剩余内容,因此它丢失并NA表示缺少值
v <- c(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE)
named.v <- c(`TRUE` = "#FF0000FF", `FALSE`="#00FF00FF", `NA`="0000FFFF")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35 次 |
| 最近记录: |