R 列为列表的数据帧列表上的lappy函数

R 列为列表的数据帧列表上的lappy函数,r,lapply,R,Lapply,我有一个数据帧列表,下面是其中的两个: structure(list(a = list(c("280", "330", "399", "416"), "2962", c("1095", "1765"), "764", "165"), b = list(c("72", "78", "88", "157", "398"), c("5", "93", "147", "174", "1046", "1325", "1347", "1659", "1739", "1992", "2053",

我有一个数据帧列表,下面是其中的两个:

structure(list(a = list(c("280", "330", "399", "416"), "2962", 
    c("1095", "1765"), "764", "165"), b = list(c("72", "78", 
"88", "157", "398"), c("5", "93", "147", "174", "1046", "1325", 
"1347", "1659", "1739", "1992", "2053", "2286", "2401", "2433", 
"2607", "2653", "2750", "2768", "2852", "2946"), c("181", "366", 
"497", "608", "781", "929", "962", "1162", "1165", "1232", "1423", 
"1448", "1485", "1577", "1580", "1623", "1655", "1725"), c("125", 
"133", "470", "481", "566", "639", "715", "737", "781", "936", 
"957"), c("100", "140"))), .Names = c("a", "b"), row.names = c(1:5), class = "data.frame")

structure(list(a = list("965", "552", c("467", "493", "1433"
), "497", c("416", "1875")), b = list(c("285", "289", "305", 
"373", "510", "535", "548", "817", "862", "866", "977"), c("65", 
"282", "330", "455", "597", "921", "923"), c("153", "156", "157", 
"159", "198", "231", "271", "295", "336", "347", "466", "492", 
"516", "548", "605", "696", "705", "716", "720", "797", "861", 
"876", "1040", "1086", "1173", "1261", "1263", "1375", "1427", 
"1454", "1530", "1571", "1623", "1636"), c("17", "79", "151", 
"189", "193", "258", "543", "637"), c("131", "357", "539", "641", 
"756", "827", "848", "1079", "1280", "1364", "1429", "1454", 
"1485", "1493", "1547", "1602", "1629", "1711", "1786", "1817", 
"1864", "1944", "1955", "1960", "2379", "2400"))), .Names = c("a", 
"b"), row.names = 6:10, class = "data.frame")
请注意,a列和b列也是列表。所以我有一个数据帧列表,列表作为列。我尝试应用一个函数生成一个新列,如下所示:

mylist <- lapply(mylist, function(x) {x$count_diff <- as.vector(t(abs(outer(as.numeric(x$a), as.numeric(x$b), FUN="-")))); x})
因此,如果我尝试使用子集运算符[&[],我将分别得到以下错误:

Error in `[.data.frame`(x, a) : object 'a' not found

Error in (function(x, i, exact) if (is.matrix(i)) as.matrix(x)[[i]] else .subset2(x,  : 
  object 'a' not found
我希望看到的结果如下:

Inputs: a = 280 330 399 416, b = 72  78  88 157 398
Output: count_diff = "208 202 192 123 118 258 252 242 173 68 327 321 311 242 1 344 338 328 259 18"

但是,我无法访问列表中的元素,也不清楚原因!非常感谢您的帮助!

dput
似乎不正确。它给出了一个错误。您能检查一下吗?
dput
不正确,当我修复它时,我无法使用
1:nrow(temp\u good)运行for循环
line。@Ronaksah-修复了dput!
dput
似乎不正确。它给出了一个错误。您能检查一下吗?
dput
不正确,当我修复它时,我无法用
1:nrow(temp\u good)
行运行for循环。@Ronaksah-修复了dput!
Inputs: a = 280 330 399 416, b = 72  78  88 157 398
Output: count_diff = "208 202 192 123 118 258 252 242 173 68 327 321 311 242 1 344 338 328 259 18"