小编Ed_*_*avy的帖子

R从图像中提取文本并将其导出为CSV

有人直接向我提供了一个screenshot表格,我必须在 中输入信息MS-Excel。我正在考虑找到一种方法从该图像中提取文本并将其导出为CSV.

我确实遇到了tesseract包,但效果不佳。

有没有办法做到这一点R

示例图片:

在此输入图像描述

我尝试过的代码:

library(tidyverse)
library(tesseract)

eng = tesseract("eng")
text = tesseract::ocr("path/file_name.png", engine = eng)
cat(text)
Run Code Online (Sandbox Code Playgroud)

tesseract r

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

替换/修改数据框中的重复项

根据下面的数据和代码,如何通过为除第一个值之外的每个重复值添加、a等来替换重复项?bc

请注意,在提供给我的实际数据中,有数千个条目,因此可能存在任意数量的重复项,因此,我很难手动找到数据中的每个重复值。所以,我不知道在替换它们之前不首先识别重复项是否会出现问题。也许有一种方法可以首先识别它们,但目前我还不知道。

代码:

# Sample data
df = structure(list(id = c(1, 1, 1, 1, 2, 2, 2, 2, 35555, 35555, 35555
), year = c(2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 
2022, 2022)), class = "data.frame", row.names = c(NA, -11L))

# Desired output
df = structure(list(id = c(1, "1a", "1b", "1c", 2, "2a", "2b", "2c", 35555, "35555a", "35555b"
), year = c(2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 
2022, 2022)), class = …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

gt表保存到Word

目前包gtsave中的功能gt不支持MS-Word。我尝试将一个gt对象转换为一个flextable对象,然后另存为 word,但 flextable 不支持 gt 对象。当我只是复制粘贴html到 Word 时,美感就消失了。PNG 也不理想,因为当我调整图片大小时,字体大小与文档字体大小不匹配。有解决方法吗?

# Download package    
devtools::install_github("rstudio/gt")
# Load package     
library(gt)    
# Code        
gt_tbl =  gt(head(mtcars), caption = 'This is table caption') %>%
tab_header(title="Some Title", subtitle="Table 1: Mtcars with gt."
# Export the table
# As word
library(flextable)
 gt_tbl %>%
           flextable::as_flextable() %>%
           flextable::save_as_docx(path = "~")
Run Code Online (Sandbox Code Playgroud)

错误

Error in UseMethod("as_flextable") : 
  no applicable method for 'as_flextable' applied to an object of class "c('gt_tbl', …
Run Code Online (Sandbox Code Playgroud)

r gt

7
推荐指数
0
解决办法
3802
查看次数

使用 dplyr 将 R 中的数据帧拆分为更小的数据帧

我有一个观察dataframe结果118,总共有三列。现在,我想将此数据框分成每个观察two dataframes59。我尝试了两种不同的方法,但没有一个返回我想要的结果。

我该如何使用dplyrin来做到这一点R

示例数据框:

Code Count_2020 Count_2021
A    1          2
B    2          4
C    3          6
D    4          8
E    5          10
F    6          12
Run Code Online (Sandbox Code Playgroud)

期望的输出:

DF1

Code Count_2020 Count_2021
    A    1          2
    B    2          4
    C    3          6
Run Code Online (Sandbox Code Playgroud)

DF2

Code Count_2020 Count_2021
    D    4          8
    E    5          10
    F    6          12
Run Code Online (Sandbox Code Playgroud)

第一种方法

基于这个答案

library(tidyverse)
df= df %>% group_split(Code)
Run Code Online (Sandbox Code Playgroud)

现在,这将返回 的列表118,因此它是一个观察值列表118,其中每个观察值list都有 …

r dplyr

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

R ggplot2拼凑公共轴标签

根据下面的代码和数据,是否可以拥有通用的图例标签,而不必使用来从代码中删除xlab和?ylabggplotpatchwork

我之所以问这个问题,是因为我有很多,所以我觉得从每个中删除和然后在代码中使用该方法ggplots并不理想。我知道我可以使用但比 慢得多。xlabylabggplotsggarrangeggpubrpatchwork

示例数据和代码:

library(tidyverse)
library(patchwork)
library(gridextra)

gg1 = ggplot(mtcars) +
  aes(x = cyl, y = disp) +
  geom_point() +
  xlab("Disp") +
  ylab("Hp // Cyl") +
  theme(axis.title = element_blank())

gg2 = gg1 %+% aes(x = hp) +
  xlab("Disp") +
  ylab("Hp // Cyl")

# This method still keeps the individual axis labels.
p = gg1 + gg2
gt = patchwork::patchworkGrob(p)
gridExtra::grid.arrange(gt, left = "Disp", bottom = "Hp // …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 patchwork

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

R 从数据框中的列中提取前两个字符

我有一个包含多个的数据集,我想characters从该sr列中提取前两个。最后,这些字符将存储在一个新列中。

基本上,我想要一个新列permit_type,其中包含srieAPSP的前两个字符值MP

我怎样才能做到这一点?

样本数据

structure(list(date_received = c("11/30/2021  ", "11/30/2021  ", 
"11/30/2021  ", "11/30/2021  ", "11/30/2021  ", "11/17/2021  ", 
"12/3/2021  ", "12/3/2021  ", "12/13/2021  "), date_approved = c("11/30/2021", 
"11/30/2021", "11/30/2021", "11/30/2021", "11/30/2021", "11/17/2021", 
"12/3/2021", "12/3/2021", "12/3/2021"), sr = c("AP-21-080", "SP-21-081", 
"AP-21-082", "SP-21-083", "MP-21-084", "AP-21-085", "AP-21-086", 
"MP-21-087", "SP-21-088"), permit = c("AP1766856 Classroom C", 
"AP1766858 Classroom A", "AP1766862 Landscape Area", "AP1766864 Classroom B", 
"AO1766867", "06-SE-2420566", "06-E-2425187", "", "06-SM-2424110"
)), …
Run Code Online (Sandbox Code Playgroud)

r stringr

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

R中的plot_annotations通过拼凑消失

我正在尝试将两个patchwork objects一起绘制。该代码有效但plot_annotations消失了。

如何解决这个问题?

数据+代码:

library(tidyverse)
library(patchwork)

#Plot 1
GG1 = ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))+
  geom_point()
#Plot 2
GG2 = ggplot(iris,aes(y=Sepal.Length,x=Sepal.Width))+
  geom_point()
#Plot 3
GG3 = ggplot(iris,aes(y=Petal.Width,x=Sepal.Width))+
  geom_point()
#Plot 4
GG4 = ggplot(iris,aes(y=Petal.Length,x=Petal.Width))+
  geom_point()


combine_1 =  GG1 + GG2 +
  plot_annotation(title = 'Combine plot 1',
                  theme = theme(plot.title = element_text(hjust = 0.5)))

combine_2 =  GG3 + GG4 +
  plot_annotation(title = 'Combine plot 2',
                  theme = theme(plot.title = element_text(hjust = 0.5)))

combine_1/combine_2
Run Code Online (Sandbox Code Playgroud)

输出

在此输入图像描述

r ggplot2 patchwork

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

R dplyr 包含任何字符值的子集行

我有一个数据集,其中特定列(x在本例中)具有带有字符值的某些行。

如何对包含任何字符值的这些行进行切片/子集化以进行数据探索?

请注意,我不想对行中的所有字符进行硬编码来告诉代码这些行是否具有这些字符,然后对这些行进行子集化。因为我的原始数据集很大,所以该列可以在任意数量的行中包含任何字符值。

因此,这就是查看该列中具有字符值的所有行的目的

示例数据和代码:

library(dplyr)

x = c("1000", "1001", "1003", "14484R", "1004", "1005",  "12241alternet", "12634TAB", "12644R", "END", NA, NA)
y = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

df = data.frame(x, y)

# subset/slice rows in column x that contain any character value 
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

将字符串列拆分为年月日

我有一个数据集,其中的info列与下面的数据类似。如何将其拆分为年、月、日列?

代码:

  df = structure(list(id = c(1, 2, 3, 4, 5, 6, 7, 8), info = c("PRISM_ppt_provisional_4kmD2_20220925_bil", 
    "PRISM_ppt_provisional_4kmD2_20220926_bil", "PRISM_ppt_provisional_4kmD2_20220927_bil", 
    "PRISM_ppt_provisional_4kmD2_20220928_bil", "PRISM_ppt_provisional_4kmD2_20220929_bil", 
    "PRISM_ppt_provisional_4kmD2_20220930_bil", "PRISM_ppt_provisional_4kmD2_20220925_bil", 
    "PRISM_ppt_provisional_4kmD2_20220926_bil")), class = "data.frame", row.names = c(NA, 
    -8L))
    
desired_df = structure(list(id = c(1, 2, 3, 4, 5, 6, 7, 8), info = c("PRISM_ppt_provisional_4kmD2_20220925_bil", 
"PRISM_ppt_provisional_4kmD2_20220926_bil", "PRISM_ppt_provisional_4kmD2_20220927_bil", 
"PRISM_ppt_provisional_4kmD2_20220928_bil", "PRISM_ppt_provisional_4kmD2_20220929_bil", 
"PRISM_ppt_provisional_4kmD2_20220930_bil", "PRISM_ppt_provisional_4kmD2_20220925_bil", 
"PRISM_ppt_provisional_4kmD2_20220926_bil"), year = c(2022, 2022, 
2022, 2022, 2022, 2022, 2022, 2022), month = c(9, 9, 9, 9, 9, 
9, 9, 9), day = c(25, 26, 27, …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

标签 统计

r ×9

dplyr ×4

ggplot2 ×2

patchwork ×2

gt ×1

stringr ×1

tesseract ×1