R 对于包含单个项目的列表,避免使用百分比字符串(“0.5%”)
我想为列表中的所有列表找到给定分位数的索引。但是,具有单个项的列表最终包含百分比字符串(“.5%”),而具有多个项的列表则不包含百分比字符串 当我想稍后访问列表项时,这会导致问题,因为我希望它们的名称相同。如何确保列表项不包含百分比字符串R 对于包含单个项目的列表,避免使用百分比字符串(“0.5%”),r,aggregate,R,Aggregate,我想为列表中的所有列表找到给定分位数的索引。但是,具有单个项的列表最终包含百分比字符串(“.5%”),而具有多个项的列表则不包含百分比字符串 当我想稍后访问列表项时,这会导致问题,因为我希望它们的名称相同。如何确保列表项不包含百分比字符串 df = data.frame(a=c(1, 2, 2, 2), b=c(2, 3, 4, 5)) tmp = aggregate(b ~ a, df, c) sapply(tmp$b, function(x) which.min(abs(x - quanti
df = data.frame(a=c(1, 2, 2, 2), b=c(2, 3, 4, 5))
tmp = aggregate(b ~ a, df, c)
sapply(tmp$b, function(x) which.min(abs(x - quantile(x, .05))))
1.5% 2
1 1
使用purrr函数映射dbl,0.5%似乎消失了。 单击此处了解有关地图功能的更多信息
这是因为R在基本数学运算中处理名称的方式(
+
,-
等)。通常,如果不需要回收,名称会保留下来。您可以从x@nicola:unname
有效。您可以将此作为建议答案发布!很高兴知道以后再说!
library(purrr)
df = data.frame(a=c(1, 2, 2, 2), b=c(2, 3, 4, 5))
tmp = aggregate(b ~ a, df, c)
map_dbl(tmp$b, function(x) which.min(abs(x - quantile(x, .05))))
1 2
1 1