string - 混合(字符和数字)变量的逻辑查询

标签 string r list dataframe coercion

我没想到这会这么困难,但我已经挣扎了一段时间......我希望这是我所缺少的简单的东西:) 我需要能够逻辑地查询包含字符串和数字混合变量的数据框。

LAMBDA<-data.frame(cbind(list(1,"lequiv"),list("lequiv",0)))
LAMBDA!=1

实现此目的的最佳方法是什么,以便将明显不等于 1 的字符串报告为 FALSE,而不是 NA? 谢谢。

最佳答案

您可以尝试测试等于字符串“1”的元素,而不是测试等于数字 1 的元素。例如:

> LAMBDA!="1"
        X1   X2
[1,] FALSE TRUE
[2,]  TRUE TRUE

而:

> LAMBDA!=1
        X1   X2
[1,] FALSE   NA
[2,]    NA TRUE

在第一种情况下,R 足够聪明,可以在测试等效性之前将数据框中的值 1 强制转换为字符串。在第二种情况下,它无法将“lequiv”强制为测试等效性之前的数字,因此返回 NA (以及警告消息)。

关于string - 混合(字符和数字)变量的逻辑查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17174745/

相关文章:

javascript - typeof 2D 数组将变为 String。为什么?

java - string.replaceAll 替换出现的地方

r - 如何保存使用 rhandsontable r 包所做的编辑

r - JAGS/BUGS 中的 pow() 运算符

python - 如何将 int 的值与元组列表中的同一组组合?

c - 在循环列表中添加节点

python - 根据行和列确定字母 - python

javascript - 将数组名称作为字符串传递,jquery

r - 嵌套整齐模型并在 ggplot 中绘制 abline

python - if语句后继续读入文件