Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 对于包含单个项目的列表,避免使用百分比字符串(“0.5%”)_R_Aggregate - Fatal编程技术网

R 对于包含单个项目的列表,避免使用百分比字符串(“0.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

我想为列表中的所有列表找到给定分位数的索引。但是,具有单个项的列表最终包含百分比字符串(“.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 - 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