> dput(data1)
structure(list(x = c(35.829875, 35.64903952, 35.87826747, 35.83962222,
35.94296667, 35.94184918, 35.87022926, 35.84118463, 35.84861677,
35.86461772), y = c(128.550225, 128.4373915, 128.6094381, 128.5711917,
128.5503917, 128.5629876, 128.6917042, 128.610549, 128.6244008,
128.595875), a = c(116.0591995, 59.11426175, 255.8600501, 190.7975442,
196.714572, 412.3129316, 267.8455805, 459.7797184, 131.1416782,
380.2493612), b = c(411.7159889, 438.7649907, 54.60376166, 339.2778169,
321.3185479, 319.6080094, 476.1722991, 372.3019021, 205.9843768,
184.6394583)), class = "data.frame", row.names = c(NA, -10L))
> listname
[1] "data1" "data2" "data3" "data4" "data5"
> check_list<-list()
> for (i in listname) {
+ for (j in listname) {
+ check <- table(i["x"] == j["x"])
+ check_list[[paste0(i,"_",j)]] <- check
+ }
+ }
> check_list
$data1_data1
< table of extent 0 >
列表名[1] $ x listname [1] $ x中的错误:$运算符对原子向量无效
我写了一个循环语句,比较多个数据帧的x变量。但是显示了相同的结果。 因此,我独自运行了代码。然后我发现发生此错误。 我该怎么办才能解决此错误?
+示例数据已添加。一共有5个数据,例如data1。
答案 0 :(得分:0)
获取列表中的所有数据并从每个数据框中提取"x"
列,然后使用outer
检查all
的值是否相同,这将返回TRUE
/ FALSE
值。
list_df <- mget(paste0("data", 1:5))
all_xs <- lapply(list_df, `[[`, 'x')
compare_fun <- function(x, y) all(x == y)
outer(all_xs, all_xs, Vectorize(compare_fun))