r - 对于相同的字符串,R 相同返回 False
问题描述
我有一个由相同字符串组成的数据框,但是identical()
当我比较它们时该函数返回 false?
例子:
df <- data.frame("x" = rep("a", times = 10),
"y" = rep("a", times = 10))
checkEquality <- function(x) {
y = x[1]
z = x[2]
return(identical(y, z))
}
apply(df[1:2], 1, checkEquality)
此代码返回一个向量,说明FALSE
何时应该返回一个向量TRUE
。我不知道这里发生了什么。任何帮助表示赞赏。
解决方案
这是因为它们并不完全相同。您的函数逐行获取数据框,然后比较前列。由于您使用单括号运算符,因此[]
您可以维护列名和行名:
x = df[1,]
x[1]
x
1 a
x[2]
y
1 a
虽然值相同,但列名不同,因此两个向量不相同。
如果您使用双括号表示法[[]]
,那么它将只提取一个元素,删除行名和列名,它应该可以工作:
checkEquality <- function(x) {
y = x[[1]]
z = x[[2]]
return(identical(y, z))
}
apply(df, 1, checkEquality)
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
推荐阅读
- python - 用于在数据框中搜索值并更新其旁边的值的 for 循环
- bash - 无法在 Mac 上安装 miniconda3
- jquery - 页面调用函数后的jquery .load()
- java - 在后台从 Android ViewModel 调用方法
- c - 中断上下文中的 spin_lock_irqsave()
- jquery - dom 解析器忽略强标签
- java - Android:onItemClick 和 onItemLongClick 不响应
- angular - 为 ts 项目运行声纳扫描仪时出错
- javascript - Javascript h ref 未正确匹配
- oop - Web 开发的任何方面是否包括 oop