【发布时间】:2021-09-23 09:59:09
【问题描述】:
我正在尝试为 R for 循环中的每次迭代创建新的数据帧。首先,我正在计算我的数据的百分位数并将它们存储为数据框。
comparison_data = fread("data.txt",
stringsAsFactors=FALSE,
col.names=c("c2",
"m1_area", "m1_distance", "m1_tags",
"m2_area", "m2_distance", "m2_tags"
)
)
m1_list <- quantile(comparison_data$m1_area, probs = c(.1, .2, .3, .4, .5, .6, .7))
m2_list <- quantile(comparison_data$m2_area, probs = c(.1, .2, .3, .4, .5, .6, .7))
m1_m2_list = as.data.frame(cbind(m1_list, m2_list))
我想根据特定的百分位数过滤我的 compare_data 文件并保存生成的数据表。
filter_data_table <- function(a, b) {
m1_m2_filtered <- dplyr::filter(comparison_data, m1_area > a & m2_area > b)
}
for (i in m1_m2_list) {
data_frames_list <- sapply(comparison_data, filter_data_table(m1_m2_list$m1_list[i], m1_m2_list$m2_list[i]))
}
我得到一个错误:
Error in match.fun(FUN) :
'filter_data_table(m1_m2_list$m1_list[i], m1_m2_list$m2_list[i])' is not a function, character or symbol
In addition: Warning messages:
1: In m1_area > a :
longer object length is not a multiple of shorter object length
2: In m2_area > b :
longer object length is not a multiple of shorter object length
我该如何解决?
【问题讨论】:
标签: r