我有一个包含40列和2000行的数据集。 2列的值很重要。我想选择在这两列中具有相同值的行。 我的一小部分数据就是这样
2 3 4 5 6 3 23 32
4 3 4 1 0 5 6 43
4 4 3 22 1 2 23
假设我要选择第一和第三列中具有相同值的行。所以我想将第二行存储在新的数据集中
答案 0 :(得分:1)
我从您的评论中得出,您将数字存储为该数据框中的因子。因素具有不同的内部价值。因此,当控制台输出显示因子级别为4
时,内部表示中不一定是4
。通常,两个不同的因素彼此不兼容,除非它们的水平设置相同。要查看第一列的“内部表示形式”,请使用as.numeric(df[[1]])
。
现在可以解决您的问题。您首先必须使用因子级别将第1列和第3列(或所有列)中的因子转换为数值。有关说明,请参见here。
## converting factor levels to numeric values
df[[1]] <- as.numeric(levels(df[[1]]))[df[[1]]]
df[[3]] <- as.numeric(levels(df[[3]]))[df[[3]]]
## filter data
df[df[1] == df[3],]