小编and*_*ang的帖子

以智能方式将所有列一一比较

有变量x,,yz我想过滤掉其中任何一个没有巨大差距的(差距小于5%)。下面的代码可以模拟,但是如果我想要更多的变量进行比较,代码就会很无聊。有什么聪明的方法吗?谢谢!

library(tidyverse)

diamonds %>%
  select(x, y, z) %>%
  filter(abs((x - y)/ max(x, y)) < 0.05,
         abs((x - z)/ max(x, z)) < 0.05,
         abs((y - z)/ max(y, z)) < 0.05)
Run Code Online (Sandbox Code Playgroud)

r filter dplyr

8
推荐指数
4
解决办法
1038
查看次数

在 R 中,如何用前一个字符替换 NA

有一个数据框作为打击(带有 NA 值)

md <- data.frame(cat=c('a','b','d',NA,'E',NA),
                subcat=c('A','C',NA,NA,NA,'D')) 

 cat subcat
1    a      A
2    b      C
3    d   <NA>
4 <NA>   <NA>
5    E   <NA>
6 <NA>      D
Run Code Online (Sandbox Code Playgroud)

我想用前一个字符替换 NA,结果如下。

使用像 'for ...' 这样的循环语句可以做到,但效率不高。有什么公式或包可以做到吗?谢谢!

  cat subcat
1   a      A
2   b      C
3   d      C
4   d      C
5   E      C
6   E      D
Run Code Online (Sandbox Code Playgroud)

r na

5
推荐指数
1
解决办法
55
查看次数

在`rmarkdown`中,如何在句子中添加图标?

rmarkdown,如何在句子中添加图标?例如如下,如何markdown icon在单词“Markdown”和“is”之间添加

在此输入图像描述

markdown r r-markdown

5
推荐指数
1
解决办法
1805
查看次数

在ggplot2中,如何在饼图中间添加一个白洞

在ggplot2中,如何在饼图中间添加一个白洞?当前图(左图)请参阅下面的代码。谢谢!

library(tidyverse)
pie_data <- data.frame(category=c('A','B','C','A','B','C'),
                       year=c(2020,2020,2020,2021,2021,2021),
                       sales=c(40,30,20,10,15,10))




pie_data %>% ggplot(aes(x=factor(year),y=sales,fill=category))+
  geom_col(position='fill',width=1,color='white')+
 coord_polar(theta = 'y')+
  theme_void()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2 donut-chart

5
推荐指数
1
解决办法
678
查看次数

readr()/read_csv中,如何导入所有列为字符的数据

在readr()/read_csv中,如何导入所有列作为字符的数据?谢谢!

library(tidyverse)    
read_csv(readr_example("mtcars.csv")))
Run Code Online (Sandbox Code Playgroud)

r readr tidyverse

3
推荐指数
1
解决办法
3097
查看次数

IR,如何自动汇总数字列。谢谢

IR,如何自动汇总数字列。谢谢

library(tidyverse)
df <- tibble(label=LETTERS[1:8],
             x = rep(2:5, each = 2) / 2, 
             y = rep(2:3, each = 4) / 2)


df %>% sum(across(where(is.numeric))) #can't work
df %>% sum(where(is.numeric)) #can't work
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse across

2
推荐指数
1
解决办法
1804
查看次数

检索每组的“倒数第二个”数据

我想检索每组的“倒数第二个”数据。目前,代码如下,使用“group_modify”两次。有没有可用的功能?(如何简单地使用当前代码)?谢谢!

所希望的结果在附图中的红色矩形中。

library(dplyr)

test_data <- data.frame(category=c("a","a","c","a","b","c","a","b","c"),
                        value=c(1.72,0.32,0.22,1.29,-0.49,0.61,1.24,0.58,0.26))


test_data %>%  arrange(category ) %>% 
  group_by(category) %>% 
  group_modify(~tail(.x,2)) %>% 
  group_modify(~head(.x,1))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r dplyr

2
推荐指数
1
解决办法
547
查看次数

在字符串中,如何删除已知“开始”和“结束”的部分?

下面的数据框中有sku名称,我想删除以“V”开头并以“b”结尾的部分,我的代码 str_remove_all(sku_name,"^(V).*?(\\b)$")无法工作。

有人可以帮忙吗?

mydata <- data.frame(sku_name=c('wk0001 V1b','123780 PRO V326b','ttttt V321b'))
mydata %>% mutate(sku_name_new=str_remove_all(sku_name,"^(V).*?(\\b)$"))
Run Code Online (Sandbox Code Playgroud)

regex r stringr

2
推荐指数
1
解决办法
758
查看次数

在ggplot2中如何向圆环图添加角度标签

下面的代码可以将圆环图绘制为附图中的左侧图表,如何将标签更改为右侧图表?谢谢!

library(tidyverse)
pie_data <- data.frame(category=c('A','B','C'),sales=c(70,25,40))
pie_data %>% ggplot(aes(x=1,y=sales,fill=category))+
  geom_col()+
  scale_fill_brewer(direction = -1)+
  geom_text(position=position_stack(vjust=0.5),aes(label=paste0('Category ',category,':',sales)))+
  xlim(-1,2)+
  coord_polar(theta = 'y')+
  theme_void()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

2
推荐指数
1
解决办法
435
查看次数

在 ggplot2/stat_summary 中,如何添加“中位数”值作为标签来绘图(如 geom_text())

在 ggplot2/stat_summary 中,如何将median值作为标签添加到绘图中?谢谢!

library(ggplot2)
d <- ggplot(mtcars, aes(cyl, mpg)) + geom_point()
d + stat_summary(fun = "median", colour = "red", size = 2, geom = "point")
Run Code Online (Sandbox Code Playgroud)

ggplot2

2
推荐指数
1
解决办法
1507
查看次数

在 R/list 中如何合并/rbind 子数据帧

有列表ori_list,如何组合子数据框cat_a|cat_btocatitem_a|item_bto item?(结果与 new_list 相同)

cat_a <- data.frame(name=c('A','B','C'),amount=c(1,2,3))
cat_b <- data.frame(name=c('w','B','C'),amount=c(4,2,3))
item_a <- data.frame(name=c('z','o','C'),amount=c(3,4,1))
item_b <- data.frame(name=c('n','B','C'),amount=c(6,6,3))

files <- ls(pattern = 'cat|item') %>% purrr::set_names()

ori_list <- list(mget(files))

new_list <- list(cat= data.frame(name = c('A','B','C','w','B','C'),
                            amount = c(1,2,3,4,2,3)),
                 item = data.frame(name=c('z','o','C','n','B','C'),
                                   amount=c(3,4,1,6,6,3)))
Run Code Online (Sandbox Code Playgroud)

r list dataframe

2
推荐指数
1
解决办法
59
查看次数

在 R/ggplot2 中,当我使用 Expand_limits 时,它似乎无法工作

在ggplot2中,我想让bar_plot与x轴对齐(删除附图所示的空白区域)。使用时expand_limits(y=0),似乎无法工作。有人可以帮忙吗?谢谢!

library(tidyverse)
library(RColorBrewer)
data <- data.frame(category=c("a","b","c","d"),value=4:1)
data %>% ggplot(aes(category,value,fill=category))+
  geom_bar(stat='identity')+scale_fill_brewer(palette='Greens',direction=-1)+
  expand_limits(y=0)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

1
推荐指数
1
解决办法
539
查看次数

标签 统计

r ×11

ggplot2 ×4

dplyr ×3

tidyverse ×2

across ×1

dataframe ×1

donut-chart ×1

filter ×1

list ×1

markdown ×1

na ×1

r-markdown ×1

readr ×1

regex ×1

stringr ×1