小编cep*_*pod的帖子

为什么map_if()在列表中不起作用

请帮我

1)为什么map_if在列表中不起作用
2)是否有使其工作的方法
3)如果不可行,还有哪些选择

提前致谢。

library(dplyr) 
library(purrr) 

cyl <- split(mtcars, mtcars$cyl) 

# This works
map_if(mtcars, is.numeric, mean) 

# This does not work 
map_if(cyl, is.numeric, mean)
Run Code Online (Sandbox Code Playgroud)

dictionary if-statement r purrr

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

从 ggplots 列表中自动组装拼凑图

我正在尝试锻炼一个函数(没有任何成功),该函数将自动组装 ggplots 图列表patchwork

该函数将接受以下输入:

  • 行数
  • 列数
  • master_list_with_plots 列表

通过这些输入,函数应该自动构建绘图。我在下面提供了一个例子:

library(tidyverse)
library(patchwork)
  
p1 <- mtcars %>% ggplot() + geom_bar(aes(mpg))
p2 <- mtcars %>% ggplot() + geom_bar(aes(cyl))
p3 <- mtcars %>% ggplot() + geom_bar(aes(disp))
p4 <- mtcars %>% ggplot() + geom_bar(aes(hp))
p5 <- mtcars %>% ggplot() + geom_bar(aes(drat))                                   
p6 <- mtcars %>% ggplot() + geom_bar(aes(wt))

plot_list <- list(mpg  = p1,
                  cyl  = p2,
                  disp = p3,
                  hp   = p4,
                  drat = p5,
                  wt   = p6)

# Function inputs
no_of_rows = …
Run Code Online (Sandbox Code Playgroud)

r tidyverse patchwork

6
推荐指数
2
解决办法
4131
查看次数

R 3.5 - read.csv无法读取UTF-16 csv文件

我的代码如下:

read.csv("http://asic.gov.au/Reports/YTD/2018/RR20180420-001-SSDailyYTD.csv", skip=1, fileEncoding = "UTF-16", sep = "\t", header = FALSE)
Run Code Online (Sandbox Code Playgroud)
  • R 3.4.3 - 代码干净利落地执行
  • R 3.5.0 - 给出以下错误:

Error in read.table(file = file, header = header, sep = sep, quote = quote, : no lines available in input

@hrbrmstr - 会话信息读数

sessionInfo()
R version 3.5.0 (2018-04-23)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=English_Australia.1252  LC_CTYPE=English_Australia.1252   
[3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C                      
[5] LC_TIME=English_Australia.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets …
Run Code Online (Sandbox Code Playgroud)

r read.table read.csv

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

有条件地使用replace_na

我希望有条件地使用tidyverse取代截至2017年7月16日的缺失收入.

我的数据

library(tidyverse)
library(lubridate)

    df<- tribble(
                 ~Date, ~Revenue,
          "2017-07-01",      500,
          "2017-07-02",      501,
          "2017-07-03",      502,
          "2017-07-04",      503,
          "2017-07-05",      504,
          "2017-07-06",      505,
          "2017-07-07",      506,
          "2017-07-08",      507,
          "2017-07-09",      508,
          "2017-07-10",      509,
          "2017-07-11",      510,
          "2017-07-12",      NA,
          "2017-07-13",      NA,
          "2017-07-14",      NA,
          "2017-07-15",      NA,
          "2017-07-16",      NA,
          "2017-07-17",      NA,
          "2017-07-18",      NA,
          "2017-07-19",      NA,
          "2017-07-20",      NA
          )

df$Date <- ymd(df$Date)
Run Code Online (Sandbox Code Playgroud)

我想要有条件地替换NA的日期

max.date <- ymd("2017-07-16")
Run Code Online (Sandbox Code Playgroud)

输出我想要的

    # A tibble: 20 × 2
             Date Revenue
            <chr>   <dbl>
    1  2017-07-01     500
    2  2017-07-02     501
    3  2017-07-03     502
    4  2017-07-04     503
    5 …
Run Code Online (Sandbox Code Playgroud)

r missing-data tidyverse

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

从 jpeg 中提取表到 R 中的数据帧

我有以下两个链接:

https://pbs.twimg.com/media/Dv3pIsIUwAEdu--.jpg:large

https://pbs.twimg.com/media/Dv3lKfjV4AAkIpY.jpg:large

数据以表格格式呈现,但作为 jpeg,我想捕获此信息并将其转换为 df 或 tibble。

我尝试使用tesseract但结果不好,我的代码如下:

library(tesseract)
text <- ocr_data(input_1, engine = eng)
text <- tesseract::ocr_data("https://pbs.twimg.com/media/Dv3lKfjV4AAkIpY.jpg:large", engine = eng)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

r

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

dplyr::if_else - 检查条件并插入 NA 作为评估的一部分

我正在尝试解决一个简单的问题。我检查一个特定的条件,如果它是真的,我插入一个date值或插入NA(即留下一个空白单元格)。

为了if_else让它发挥作用,我正在使用,但它顽固地拒绝工作(我花了几个小时阅读 SO 和帮助页面)。

这是我尝试过但失败的方法:

library(tidyverse)
library(lubridate)

df <- data.frame(date   = dmy(c("01/01/2019", "02/01/2019", "03/01/2019")),
           status = c("Active", "Suspended", "Active"),
           stringsAsFactors = FALSE)

  df %>%  mutate(sus_date = if_else(status == "suspended", 1, 2))   # This works

  df %>% mutate(sus_date = if_else(status == "suspended", date, NA)) # Throws an Error
  Error: `false` must be a `Date` object, not a logical vector
  Call `rlang::last_error()` to see a backtrace.


  df %>% mutate(sus_date = if_else(status == "suspended", date, NA_real_)) # …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

如何基于列中的字符串在df中输入几个空行

我有一个输出df,我试图closing_bal在名为的列中的每个条目之后插入空白行placement_status_type。想法是,在我插入空白行后,我另存为excel文件,以使最终用户可以轻松地读取excel中的数字。

我知道该add_row功能,但无法找到在某种条件下使用它的方法。

sample data:
df <- data.frame(stringsAsFactors=FALSE,
         placement_status_type = c("opening_bal", "New", "Transfer", "Reinstated",
                                   "Suspended", "Exit", "closing_bal",
                                   "opening_bal", "New", "Transfer", "Reinstated",
                                   "Suspended", "Exit", "closing_bal", "opening_bal",
                                   "New", "Transfer", "Exit", "closing_bal",
                                   "opening_bal", "New", "Exit", "closing_bal",
                                   "Transfer", "Exit", "closing_bal", "Transfer",
                                   "Suspended", "Exit", "closing_bal"),
                        Aug_18 = c(173, 11, -6, 16, -21, -9, 164, 5, 4, 0, 3, 0, -2,
                                   10, 17, 6, -1, -4, 18, -1, 0, 0, -1, 0, 0,
                                   0, 0, 0, 0, 0)
      )
Run Code Online (Sandbox Code Playgroud)

r tidyverse

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

在列表中查找对象的位置编号

我的清单如下:

list(c(TRUE, FALSE), TRUE, FALSE)
Run Code Online (Sandbox Code Playgroud)

该列表包含只有一个目标TRUE,其他都是的混合TRUEFALSE。我想算出TRUE唯一对象的位置编号,在这种情况下,答案是2

听起来很简单,但到目前为止我还是失败了。

有什么解决办法吗?

r list tidyverse

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