【发布时间】:2021-10-04 14:27:43
【问题描述】:
注意:请参阅底部的 dputs 和脚本
问题总结
我编写了一个脚本,它接受一个 tibble datainput,将其转换为一个 tibble df,执行一系列基于 df 对象的函数/计算,并最终加入原始 @987654324 @tibble 和df 创建一个名为datainput$cluster 的新列
这是datainput 的样子:
> head(datainput)
# A tibble: 6 x 4
p f x g
<dbl> <chr> <dbl> <chr>
1 409100012 107403 0.005 107403 x
2 409100012 x 0.995 107403 x
3 1032400197 107403 0.05 107403 x
4 1032400197 x 0.95 107403 x
5 3725600001 107403 0.033 107403 x
6 3725600001 x 0.967 107403 x
这是datainput 在应用上述脚本后的样子:
> head(datainput)
# A tibble: 6 x 5
p f x g cluster
<dbl> <chr> <dbl> <chr> <int>
1 409100012 107403 0.005 107403 x 1
2 409100012 x 0.995 107403 x 1
3 1032400197 107403 0.05 107403 x 2
4 1032400197 x 0.95 107403 x 2
5 3725600001 107403 0.033 107403 x 2
6 3725600001 x 0.967 107403 x 2
我面临的实际问题是我需要弄清楚如何将此脚本应用到一个小标题而不是 datainput,而是作为一个小标题列表,称为 @987654332 @。我尝试了许多 lapply 等变体,但没有任何运气。
我认为我的问题在于如何将脚本存储为函数。
有人可以就如何将我的脚本应用到dfl 对象中的小标题列表,然后将dfl 对象转换为一个添加新列的小标题提供任何指导吗?
输出
datainput:
structure(list(p = c(409100012, 409100012, 1032400197, 1032400197,
3725600001, 3725600001, 4218200011, 4218200011, 4873700001, 4873700001,
5305300007, 5305300007, 6488100007, 6488100007, 7008700002, 7008700002,
7517400002, 7517400002, 8265300001, 8265300001, 8301900001, 8301900001,
8301900002, 8301900002, 8301900003, 8301900003, 8301900005, 8301900005,
8301900006, 8301900006, 8313500001, 8313500001, 8534800002, 8534800002,
8555600001, 8555600001, 8555600002, 8555600002, 8620000001, 8620000001,
8620000002, 8620000002, 8758300003, 8758300003, 8790700001, 8790700001,
8790700002, 8790700002, 8896500001, 8896500001, 8916000002, 8916000002,
8916000004, 8916000004, 9085600001, 9085600001, 9085600002, 9085600002,
9085600003, 9085600003, 9179900001, 9179900001, 9208200001, 9208200001,
9441800001, 9441800001, 9565600001, 9565600001, 9565600002, 9565600002,
9754300001, 9754300001), f = c("107403", "x", "107403", "x",
"107403", "x", "107403", "x", "107403", "x", "107403", "x", "107403",
"x", "107403", "x", "107403", "x", "107403", "x", "107403", "x",
"107403", "x", "107403", "x", "107403", "x", "107403", "x", "107403",
"x", "107403", "x", "107403", "x", "107403", "x", "107403", "x",
"107403", "x", "107403", "x", "107403", "x", "107403", "x", "107403",
"x", "107403", "x", "107403", "x", "107403", "x", "107403", "x",
"107403", "x", "107403", "x", "107403", "x", "107403", "x", "107403",
"x", "107403", "x", "107403", "x"), x = c(0.005, 0.995, 0.05,
0.95, 0.033, 0.967, 0.036, 0.964, 0.0512, 0.9488, 0.0075, 0.9925,
0.036, 0.964, 0.001, 0.999, 0.05, 0.95, 0.0074, 0.9926, 0.84,
0.16, 0.0075, 0.9925, 0.05, 0.95, 0.05, 0.95, 0.0075, 0.9925,
0.0144, 0.9856, 0.033, 0.967, 0.05, 0.95, 0.0075, 0.9925, 0.0084,
0.9916, 0.036, 0.964, 0.005, 0.995, 0.036, 0.964, 0.05, 0.95,
0.0005, 0.9995, 0.036, 0.964, 0.02, 0.98, 0.036, 0.964, 0.013,
0.987, 0.005, 0.995, 0.036, 0.964, 0.0075, 0.9925, 0.01, 0.99,
0.005, 0.995, 0.05, 0.95, 0.005, 0.995), g = c("107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x")), row.names = c(NA, -72L), class = c("tbl_df",
"tbl", "data.frame"))
script:
# transform data
df <-
pivot_wider(
datainput,
id_cols = "p",
names_from = "f",
values_from = "x"
)
rows <- df$p
df <- df %>% select(-p)
df[is.na(df)] <- 0
row.names(df) <- rows
df <- scale(df)
# compute dissimilarity matrix
d <- dist(df, method = "euclidean")
# store method names in m
m <- c( "average", "single", "complete", "ward")
names(m) <- c( "average", "single", "complete", "ward")
# function to compute coefficients
ac <- function(x) {
agnes(d, method = x)$ac
}
# choose best method by coefficient, store in method
coeffs <- map_dbl(m, ac) %>% #
as_tibble %>%
mutate(method = m) %>%
filter(value == max(value))
coeffs <- matrix(data = coeffs)
method = coeffs[2,1]
# Function to compute hierarchical clustering using d and method
hc <- function(x) {
agnes(d, method = method)
}
# compute hierarchical clustering with optimal method
hc1 <- hc(method)
# determine optimal clusters number by slopes of elbow plot
elbowplot <- fviz_nbclust(df, FUN = hcut, method = "wss")
elbow <- ggplot_build(elbowplot)
elbow <- elbow$data[[1]] %>%
as_tibble()
elbow <- elbow %>%
mutate(slope = if_else(
elbow$x == min(elbow$x), elbow$y/elbow$x,
-(elbow$y-lag(elbow$y)/(elbow$x-lag(elbow$x)))
))
elbow <- elbow %>%
mutate(lastslope = if_else(
x == 1, slope, lag(elbow$slope)
)) %>%
mutate(nextslope = if_else(
elbow$x == max(elbow$x), elbow$slope, lead(elbow$slope)
)) %>%
mutate(slopedelta = as.numeric(lastslope - slope)) %>%
arrange(-slopedelta) %>%
slice_head() %>%
select(x)
clusters <- matrix(data = elbow)
clusters = clusters[1,1]
# Cut dendrogram by clusters, store in sub_grp
sub_grp <- cutree(hc1, k = clusters)
# store cluster value as column called cluster
df <- df %>%
as_tibble()
row.names(df) <- rows
df <- df %>%
rownames_to_column(var = "p") %>%
mutate(cluster = sub_grp) %>%
select(p, cluster) %>%
mutate(p = as.double(p))
datainput <-
left_join(datainput, df)
# rm unneccesary things
rm(clusters, coeffs, elbow, elbowplot, hc1, method, d, m, rows, sub_grp, ac, hc, df)
dfl:
structure(list(structure(list(p = c(409100012, 409100012, 1032400197,
1032400197, 3725600001, 3725600001, 4218200011, 4218200011, 4873700001,
4873700001, 5305300007, 5305300007, 6488100007, 6488100007, 7008700002,
7008700002, 7517400002, 7517400002, 8265300001, 8265300001, 8301900001,
8301900001, 8301900002, 8301900002, 8301900003, 8301900003, 8301900005,
8301900005, 8301900006, 8301900006, 8313500001, 8313500001, 8534800002,
8534800002, 8555600001, 8555600001, 8555600002, 8555600002, 8620000001,
8620000001, 8620000002, 8620000002, 8758300003, 8758300003, 8790700001,
8790700001, 8790700002, 8790700002, 8896500001, 8896500001, 8916000002,
8916000002, 8916000004, 8916000004, 9085600001, 9085600001, 9085600002,
9085600002, 9085600003, 9085600003, 9179900001, 9179900001, 9208200001,
9208200001, 9441800001, 9441800001, 9565600001, 9565600001, 9565600002,
9565600002, 9754300001, 9754300001), f = c("107403", "x", "107403",
"x", "107403", "x", "107403", "x", "107403", "x", "107403", "x",
"107403", "x", "107403", "x", "107403", "x", "107403", "x", "107403",
"x", "107403", "x", "107403", "x", "107403", "x", "107403", "x",
"107403", "x", "107403", "x", "107403", "x", "107403", "x", "107403",
"x", "107403", "x", "107403", "x", "107403", "x", "107403", "x",
"107403", "x", "107403", "x", "107403", "x", "107403", "x", "107403",
"x", "107403", "x", "107403", "x", "107403", "x", "107403", "x",
"107403", "x", "107403", "x", "107403", "x"), x = c(0.005, 0.995,
0.05, 0.95, 0.033, 0.967, 0.036, 0.964, 0.0512, 0.9488, 0.0075,
0.9925, 0.036, 0.964, 0.001, 0.999, 0.05, 0.95, 0.0074, 0.9926,
0.84, 0.16, 0.0075, 0.9925, 0.05, 0.95, 0.05, 0.95, 0.0075, 0.9925,
0.0144, 0.9856, 0.033, 0.967, 0.05, 0.95, 0.0075, 0.9925, 0.0084,
0.9916, 0.036, 0.964, 0.005, 0.995, 0.036, 0.964, 0.05, 0.95,
0.0005, 0.9995, 0.036, 0.964, 0.02, 0.98, 0.036, 0.964, 0.013,
0.987, 0.005, 0.995, 0.036, 0.964, 0.0075, 0.9925, 0.01, 0.99,
0.005, 0.995, 0.05, 0.95, 0.005, 0.995), g = c("107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x", "107403 x", "107403 x", "107403 x", "107403 x",
"107403 x")), row.names = c(NA, -72L), class = c("tbl_df",
"tbl", "data.frame")), structure(list(p = c(50700005, 50700005,
145900103, 145900103, 183900065, 183900065, 214400008, 214400008,
546400001, 546400001, 683600191, 683600191, 1032400049, 1032400049,
7295600001, 7295600001), f = c("128928", "x", "128928", "x",
"128928", "x", "128928", "x", "128928", "x", "128928", "x", "128928",
"x", "128928", "x"), x = c(0.4, 0.6, 0.0285, 0.9715, 0.5, 0.5,
0.1, 0.9, 0.129, 0.871, 0.5, 0.5, 0.5, 0.5, 0.000175, 0.999825
), g = c("128928 x", "128928 x", "128928 x", "128928 x",
"128928 x", "128928 x", "128928 x", "128928 x", "128928 x",
"128928 x", "128928 x", "128928 x", "128928 x", "128928 x",
"128928 x", "128928 x")), row.names = c(NA, -16L), class = c("tbl_df",
"tbl", "data.frame")), structure(list(p = c(125801401, 125801401,
144800345, 144800345, 170600168, 170600168, 170600181, 170600181,
170600217, 170600217, 170600235, 170600235, 221400012, 221400012,
221400013, 221400013, 221400014, 221400014, 221400015, 221400015,
337700025, 337700025, 337700028, 337700028, 337700029, 337700029,
337700032, 337700032, 337700034, 337700034, 337700053, 337700053,
337700054, 337700054, 337700073, 337700073, 337700075, 337700075,
337700076, 337700076, 337700077, 337700077, 343200058, 343200058,
343200090, 343200090, 352500127, 352500127, 387600158, 387600158,
387600159, 387600159, 518500447, 518500447, 518500448, 518500448,
518500449, 518500449, 518500450, 518500450, 518500451, 518500451,
518500466, 518500466, 518500467, 518500467, 573600090, 573600090,
573600094, 573600094, 578500066, 578500066, 578500067, 578500067,
578500076, 578500076, 578500078, 578500078, 578500079, 578500079,
578500080, 578500080, 578500081, 578500081, 736400030, 736400030,
736400104, 736400104, 736400106, 736400106, 736400107, 736400107,
761600065, 761600065, 862200045, 862200045, 862200049, 862200049,
862200051, 862200051, 862200057, 862200057, 862200066, 862200066,
862200067, 862200067, 862200078, 862200078, 862200089, 862200089,
862200091, 862200091, 895900052, 895900052, 1032400095, 1032400095,
1530000026, 1530000026, 4126000041, 4126000041, 4154700013, 4154700013,
4229100003, 4229100003, 4530900043, 4530900043, 4533700006, 4533700006,
4533700007, 4533700007, 4533700008, 4533700008, 4533700009, 4533700009,
4533700010, 4533700010, 4533700011, 4533700011, 4533700014, 4533700014,
4533700015, 4533700015, 4533700016, 4533700016, 4604300027, 4604300027,
4604300028, 4604300028, 4604300029, 4604300029, 5499800009, 5499800009,
5861600003, 5861600003, 5861600005, 5861600005, 5861600006, 5861600006,
6248100001, 6248100001, 6383800026, 6383800026, 6947000031, 6947000031,
6968100036, 6968100036, 6968100042, 6968100042, 7170400001, 7170400001,
7177000005, 7177000005, 7357800001, 7357800001, 7465500019, 7465500019,
7465500029, 7465500029, 8345100017, 8345100017, 8345100018, 8345100018,
8345100019, 8345100019, 8871400003, 8871400003, 8911000035, 8911000035,
9005200001, 9005200001), f = c("13907", "x", "13907", "x", "13907",
"x", "13907", "x", "13907", "x", "13907", "x", "13907", "x",
"13907", "x", "13907", "x", "13907", "x", "13907", "x", "13907",
"x", "13907", "x", "13907", "x", "13907", "x", "13907", "x",
"13907", "x", "13907", "x", "13907", "x", "13907", "x", "13907",
"x", "13907", "x", "13907", "x", "13907", "x", "13907", "x",
"13907", "x", "13907", "x", "13907", "x", "13907", "x", "13907",
"x", "13907", "x", "13907", "x", "13907", "x", "13907", "x",
"13907", "x", "13907", "x", "13907", "x", "13907", "x", "13907",
"x", "13907", "x", "13907", "x", "13907", "x", "13907", "x",
"13907", "x", "13907", "x", "13907", "x", "13907", "x", "13907",
"x", "13907", "x", "13907", "x", "13907", "x", "13907", "x",
"13907", "x", "13907", "x", "13907", "x", "13907", "x", "13907",
"x", "13907", "x", "13907", "x", "13907", "x", "13907", "x",
"13907", "x", "13907", "x", "13907", "x", "13907", "x", "13907",
"x", "13907", "x", "13907", "x", "13907", "x", "13907", "x",
"13907", "x", "13907", "x", "13907", "x", "13907", "x", "13907",
"x", "13907", "x", "13907", "x", "13907", "x", "13907", "x",
"13907", "x", "13907", "x", "13907", "x", "13907", "x", "13907",
"x", "13907", "x", "13907", "x", "13907", "x", "13907", "x",
"13907", "x", "13907", "x", "13907", "x", "13907", "x", "13907",
"x", "13907", "x", "13907", "x"), x = c(0.98, 0.02, 0.4, 0.6,
0.428, 0.572, 0.428, 0.572, 0.4, 0.6, 0.3, 0.7, 0.453, 0.547,
0.4, 0.6, 0.38, 0.62, 0.43, 0.57, 0.4, 0.6, 0.45, 0.55, 0.45,
0.55, 0.4, 0.6, 0.98, 0.02, 0.98, 0.02, 0.4, 0.6, 0.43, 0.57,
0.1, 0.9, 0.5, 0.5, 0.98, 0.02, 0.35, 0.65, 0.99, 0.01, 0.3218,
0.6782, 0.4, 0.6, 0.4, 0.6, 0.97, 0.03, 0.97, 0.03, 0.46, 0.54,
0.46, 0.54, 0.4, 0.6, 0.38, 0.62, 0.43, 0.57, 0.026, 0.974, 0.017,
0.983, 0.46, 0.54, 0.46, 0.54, 0.38, 0.62, 0.97, 0.03, 0.428,
0.572, 0.15, 0.85, 0.4, 0.6, 0.3218, 0.6782, 0.98, 0.02, 0.98,
0.02, 0.98, 0.02, 0.038, 0.962, 0.99, 0.01, 0.4, 0.6, 0.99, 0.01,
0.99, 0.01, 0.45, 0.55, 0.43, 0.57, 0.99, 0.01, 0.46, 0.54, 0.45,
0.55, 0.98, 0.02, 0.98, 0.02, 0.4, 0.6, 0.312, 0.688, 0.99, 0.01,
0.3218, 0.6782, 0.35, 0.65, 0.223, 0.777, 0.208, 0.792, 0.888,
0.112, 0.485, 0.515, 0.104, 0.896, 0.414, 0.586, 0.676, 0.324,
0.333, 0.667, 0.6899, 0.3101, 0.99, 0.01, 0.99, 0.01, 0.4, 0.6,
0.35, 0.65, 0.223, 0.777, 0.468, 0.532, 0.149, 0.851, 0.99, 0.01,
0.4, 0.6, 0.99, 0.01, 0.99, 0.01, 0.4, 0.6, 0.4, 0.6, 0.771,
0.229, 0.99, 0.01, 0.4, 0.6, 0.4, 0.6, 0.4, 0.6, 0.43, 0.57,
0.46, 0.54, 0.4, 0.6, 0.4, 0.6, 0.99, 0.01), g = c("13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x", "13907 x",
"13907 x", "13907 x", "13907 x", "13907 x")), row.names = c(NA,
-190L), class = c("tbl_df", "tbl", "data.frame")), structure(list(
p = c(67500055, 67500055, 77700108, 77700108, 77700133, 77700133,
77700135, 77700135, 77700137, 77700137, 77700139, 77700139,
104300134, 104300134, 357300053, 357300053, 357300054, 357300054,
357300067, 357300067, 357300070, 357300070, 357300072, 357300072,
357300078, 357300078, 357300079, 357300079, 357300093, 357300093,
574100025, 574100025, 581300127, 581300127, 990200002, 990200002,
1032400220, 1032400220, 3481000035, 3481000035, 3481000036,
3481000036, 3481000037, 3481000037, 5075700005, 5075700005,
6424000064, 6424000064, 6677700001, 6677700001, 6749600001,
6749600001, 6761900044, 6761900044, 7027100032, 7027100032,
7527700002, 7527700002, 8185700001, 8185700001, 9145200001,
9145200001, 9145200005, 9145200005, 9145200006, 9145200006,
9270800001, 9270800001, 9533700001, 9533700001), f = c("21801",
"x", "21801", "x", "21801", "x", "21801", "x", "21801", "x",
"21801", "x", "21801", "x", "21801", "x", "21801", "x", "21801",
"x", "21801", "x", "21801", "x", "21801", "x", "21801", "x",
"21801", "x", "21801", "x", "21801", "x", "21801", "x", "21801",
"x", "21801", "x", "21801", "x", "21801", "x", "21801", "x",
"21801", "x", "21801", "x", "21801", "x", "21801", "x", "21801",
"x", "21801", "x", "21801", "x", "21801", "x", "21801", "x",
"21801", "x", "21801", "x", "21801", "x"), x = c(0.025, 0.975,
0.035, 0.965, 0.0263, 0.9737, 0.025, 0.975, 0.0263, 0.9737,
0.0278, 0.9722, 0.37, 0.63, 0.045, 0.955, 0.06, 0.94, 0.015,
0.985, 0.018, 0.982, 0.045, 0.955, 0.06, 0.94, 0.045, 0.955,
0.06, 0.94, 0.08, 0.92, 0.00667, 0.99333, 0.25, 0.75, 0.06,
0.94, 0.006, 0.994, 0.006, 0.994, 0.006, 0.994, 0.06, 0.94,
0.137, 0.863, 0.94, 0.0600000000000001, 0.0625, 0.9375, 0.003,
0.997, 0.06, 0.94, 0.05, 0.95, 0.045, 0.955, 0.25, 0.75,
0.002, 0.998, 0.009, 0.991, 0.0066, 0.9934, 0.015, 0.985),
g = c("21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x", "21801 x", "21801 x", "21801 x", "21801 x",
"21801 x")), row.names = c(NA, -70L), class = c("tbl_df",
"tbl", "data.frame")), structure(list(p = c(1032400234, 1032400234,
1032400234, 1032400234, 1032400234), f = c("21801", "69149",
"69165", "69166", "169101"), x = c(0.3, 0.0154, 0.0307, 0.0154,
0.041), g = c("21801 69149 69165 69166 169101", "21801 69149 69165 69166 169101",
"21801 69149 69165 69166 169101", "21801 69149 69165 69166 169101",
"21801 69149 69165 69166 169101")), row.names = c(NA, -5L), class = c("tbl_df",
"tbl", "data.frame")), structure(list(p = c(46400699, 46400699,
46400700, 46400700, 46400701, 46400701, 46400702, 46400702, 46400712,
46400712, 46400715, 46400715, 46400716, 46400716, 46408142, 46408142,
183900249, 183900249, 183900251, 183900251, 183900252, 183900252,
1032400207, 1032400207, 1032400222, 1032400222, 1032400223, 1032400223,
1070700067, 1070700067, 5248400005, 5248400005, 7117300007, 7117300007,
7117300009, 7117300009, 8276000005, 8276000005, 8911000022, 8911000022,
9051100006, 9051100006, 9051100009, 9051100009, 9092400009, 9092400009,
9251300001, 9251300001, 9251300002, 9251300002, 9251300003, 9251300003,
9251300005, 9251300005, 9251300006, 9251300006, 9358500001, 9358500001,
9460200002, 9460200002, 9460200003, 9460200003), f = c("43901",
"69105", "43901", "69105", "43901", "69105", "43901", "69105",
"43901", "69105", "43901", "69105", "43901", "69105", "43901",
"69105", "43901", "69105", "43901", "69105", "43901", "69105",
"43901", "69105", "43901", "69105", "43901", "69105", "43901",
"69105", "43901", "69105", "43901", "69105", "43901", "69105",
"43901", "69105", "43901", "69105", "43901", "69105", "43901",
"69105", "43901", "69105", "43901", "69105", "43901", "69105",
"43901", "69105", "43901", "69105", "43901", "69105", "43901",
"69105", "43901", "69105", "43901", "69105"), x = c(0.14, 0.025,
0.14, 0.025, 0.425, 0.075, 0.425, 0.075, 0.425, 0.075, 0.425,
0.075, 0.14, 0.025, 0.14, 0.025, 0.14, 0.025, 0.05, 0.1, 0.425,
0.075, 0.4, 0.1, 0.05, 0.1, 0.1, 0.15, 0.14, 0.025, 0.14, 0.03,
0.14, 0.025, 0.425, 0.075, 0.14, 0.025, 0.14, 0.025, 0.14, 0.025,
0.05, 0.1, 0.05, 0.1, 0.12, 0.03, 0.25, 0.1, 0.048, 0.02, 0.05,
0.1, 0.14, 0.025, 0.14, 0.025, 0.08, 0.02, 0.05, 0.1), g = c("43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105", "43901 69105", "43901 69105", "43901 69105", "43901 69105",
"43901 69105")), row.names = c(NA, -62L), class = c("tbl_df",
"tbl", "data.frame"))), ptype = structure(list(p = numeric(0),
f = character(0), x = numeric(0), g = character(0)), class = c("tbl_df",
"tbl", "data.frame"), row.names = integer(0)), class = c("vctrs_list_of",
"vctrs_vctr", "list"))
【问题讨论】:
-
如果您将代码块包装为一个函数,然后使用
lapply(dfl, yourfun)那不行,或者只使用map_dfr(dfl, yourfun) -
lapply 后跟 bind_rows?