小编wib*_*ley的帖子

使用Packrat和AppVeyor构建R包

有人能指出一个工作示例,其中packratAppVeyor一起使用来构建R包吗?通过Google和GitHub搜索,我找不到任何使用AppVeyor的packrat-enable软件包.

appveyor.yml文件是否需要更改?我需要通过AppVeyor网站添加一些设置吗?

我有一个非常小的包(testthat是唯一的依赖)破坏了AppVeyor构建.这是为该提交冻结代码.这是AppVeyor日志.

(如果这个SO问题听起来很熟悉,我将问Travis-CI的类似问题.)

r appveyor packrat r-package

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

FIRESTORE - 在文档中插入一个 subCollection

我的 Firestore 数据库中有一个名为 Reports 的集合,我已经在其中添加了文档。但是我现在的问题是我想在报告中添加一个带有子集合的文档,有什么想法吗?

public CollectionReference Ref = firestore.collection("Reports");
Reports reports = new Reports(date, cash, total, discount, quantity, sum, employee);
Ref.add(reports);
Run Code Online (Sandbox Code Playgroud)

java android firebase google-cloud-firestore

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

没有``aes_string()''的ggplot2的标准评估

我想将带引号的字符串传递给调用ggplot2的函数。

library(magrittr); library(ggplot2)
g1 <- function( variable ) {
  ggplot(mtcars, aes_string("wt", variable, size="carb")) +
    geom_point()
}
g1("mpg")
Run Code Online (Sandbox Code Playgroud)

这很好用,但是v3.1.0文档提倡准引用和NSE aes()

所有这些功能均已弃用。请改用整洁的评估习惯用法(请参阅aes()文档中的准引用部分)。

但是这些aes()示例使用NSE(g1(mpg)而不是g1("mpg"))。同样,这些SO解决方案使用NSE值或aes_()/ aes_string()

我希望该函数接受SE /引号字符串,以容纳字符向量,例如:

variables <- c("mpg", "cyl", "disp")
variables %>% 
  lapply(g1)
Run Code Online (Sandbox Code Playgroud)

r ggplot2 standard-evaluation

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

读取目录中的所有 csv 文件并将每个文件的名称添加到新列中

我有这段代码可以读取目录中的所有 CSV 文件。

nm <- list.files()

df <- do.call(rbind, lapply(nm, function(x) read_delim(x,';',col_names = T)))
Run Code Online (Sandbox Code Playgroud)

我想以将文件名附加到数据的方式修改它。结果将是一个包含所有 CSV 文件的单个数据框,并且在数据框中,有一列指定数据来自哪个文件。怎么做?

csv r readr

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

在 dplyr 中插入样条

我正在尝试为以下示例数据插入样条:

trt    depth    root    carbon
A       2        1        14
A       4        2        18
A       6        3        18
A       8        3        17
A      10        1        12
B       2        3        16
B       4        4        18
B       6        4        17
B       8        2        15
B      10        1        12
Run Code Online (Sandbox Code Playgroud)

通过以下方式:

new_df<-df%>%
  group_by(trt)%>%
  summarise_each(funs(splinefun(., x=depth, method="natural")))
Run Code Online (Sandbox Code Playgroud)

我得到一个Error: not a vector,但我不明白为什么不。我没有以正确的方式表达功能吗?

r spline dplyr

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

不同数据类型的bind_rows

我想堆叠一个data.frames列表,但有时列有不同的数据类型.我希望操作能够强制降低最低标准(通常character在我的情况下).

这种堆叠发生在一个包含几乎任何data.frames列表的包函数中.它实际上没有能力强迫ds_a$x角色bind_rows().

ds_a <- data.frame(
  x = 1:6,
  stringsAsFactors = FALSE
)
ds_b <- data.frame(
  x = c("z1", "z2"),
  stringsAsFactors = FALSE
)

# These four implementations throw:
# Error: Can not automatically convert from integer to character in column "x".
ds_1 <- dplyr::bind_rows(ds_a, ds_b)
ds_2 <- dplyr::bind_rows(ds_b, ds_a)
ds_3 <- dplyr::bind_rows(list(ds_a, ds_b))
ds_4 <- dplyr::union_all(ds_a, ds_b)
Run Code Online (Sandbox Code Playgroud)

我希望输出是一个带有单个字符向量的data.frame:

   x
1  1
2  2
3  3
4  4
5  5
6 …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

SQL Server 中的 R:将数据框输出到表中

这可能有一个简单的答案,但我无法弄清楚,因为我仍然掌握在 SQL Server 中使用 R 的窍门。我有一段代码从 SQL Server 表中读取数据,在 R 中执行并返回一个数据框。

execute sp_execute_external_script
    @language=N'R',
    @script=N'inp_dat=InputDataSet
    inp_dat$NewCol=max(inp_dat$col1,inp_dat$col2)
    new_dat=inp_dat
    OutputDataSet=new_dat'
    @input_data_1=N'select * from IM_COMP_TEST_SQL2016.dbo.temp_table';
Run Code Online (Sandbox Code Playgroud)

我想将 new_dat 插入 SQL Server 表 ( select * into new_table from new_dat)。我该怎么做?

sql sql-server r sql-server-2016

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

rmarkdown内联代码与代码块

我正在使用Rstudio中的rmarkdown文档,我注意到代码块中R代码的内联R代码的行为存在一些差异.例如,如果我lubridate::now()在代码块中使用该函数,我会看到在编织Rmd文档时将时区附加到输出.但是,当我使用相同的R代码,即lubridate::now()内联代码和编织文档时,我看到时区不包含在输出中.你能帮助我理解这种差异吗?

谢谢.

r knitr r-markdown

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

从字符串中评估NA_integer_

我如何读取(从文件中)一个值,"NA_integer"并让R解释它,就好像NA_integer是明确键入的一样.

以下是我失败的两次尝试:

q <- "NA_integer_"
get(q)        # Returns "Error in get(q) : object 'NA_integer_' not found"
eval(q)       # Returns the character value
Run Code Online (Sandbox Code Playgroud)

这是我能得到的最接近的.但我不喜欢它,因为它牺牲了很多普遍性.

f <- "as.integer"
v <- NA
do.call(f, list(v))
Run Code Online (Sandbox Code Playgroud)

编辑:添加尾随下划线

integer r na

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

尝试从 5 或 6 位数字中提取日期

我正在尝试从数字中提取日期。日期存储为 11 位个人 ID 号(日期-月份-年)的前 6 位数字。不幸的是,基于云的数据库 (REDCap) 输出被格式化为数字,因此每月前 9 天出生的人的前导零最终会变成 10 位数字的 ID 号码,而不是 11 位数字。我设法提取了与日期相对应的 6 或 5 位数字,即 311230 代表 1930 年 12 月 31 日,或 11230 代表 1930 年 12 月 1 日。我最终遇到了两个无法解决的问题。

假设我们使用以下数字:

dato <- c(311230, 311245, 311267, 311268, 310169, 201104, 51230, 51269, 51204)
Run Code Online (Sandbox Code Playgroud)

我将它们转换为字符串,然后应用 as.Date() 函数:

datostr <- as.character(dato)
datofinal <- as.Date(datostr, "%d%m%y")
datofinal
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是:

  • 五位数字(例如 11230)将报告为 NA。
  • 可以识别六位数字,但 1969 年 1 月 1 日之前出生的数字会加上 100 年进行报告,即 010160 转换为 2060.01.01

我确信这对于那些对 R 有更多了解的人来说一定很容易,但是,我在解决这个问题上有点困难。任何帮助是极大的赞赏。

问候比约恩

r date data-conversion redcap

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