小编Jos*_*erg的帖子

R Markdown文档中的kable输出中每隔五行(带有booktabs选项)后的空格

knitr::kable()用来渲染表作为R Markdown文档的一部分(它本身是一个bookdown项目的一部分).特别是,booktabs选项(通过将booktabs参数设置为相等TRUE)以一种漂亮的方式呈现表格.但是,我希望每隔五行就不会有空格.

例如,这里是代码以及在作为PDF呈现时,bookdown演示中的表格如何显示:

knitr::kable(
  head(iris, 20), caption = 'Here is a nice table!',
  booktabs = TRUE
)
Run Code Online (Sandbox Code Playgroud)

虹膜表与booktabs

我想要在每五行之后出现的空间不被包括在内,但我似乎找不到knitr::kable()这样做的设置.

r knitr r-markdown bookdown kable

21
推荐指数
2
解决办法
2936
查看次数

尝试使用dplyr到group_by并应用scale()

试图使用dplyrgroup_bystud_ID变量在以下的数据帧,如在此SO问题:

> str(df)
'data.frame':   4136 obs. of  4 variables:
 $ stud_ID         : chr  "ABB112292" "ABB112292" "ABB112292" "ABB112292" ...
 $ behavioral_scale: num  3.5 4 3.5 3 3.5 2 NA NA 1 2 ...
 $ cognitive_scale : num  3.5 3 3 3 3.5 2 NA NA 1 1 ...
 $ affective_scale : num  2.5 3.5 3 3 2.5 2 NA NA 1 1.5 ...
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法来获得学生的量表分数(而不是所有学生的观察量表得分):

scaled_data <- 
          df %>%
              group_by(stud_ID) %>%
                  mutate(behavioral_scale_ind = scale(behavioral_scale), …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

使用R以"smb://"开头读取远程文件

要读入文件R,我通常会执行以下操作:

read.csv('/Users/myusername/myfilename.csv')
Run Code Online (Sandbox Code Playgroud)

但是,我正在尝试读取位于远程服务器上的文件(Windows SMB/CIFS共享),我通过FinderGoConnect to Server菜单项在我的Mac上访问该文件.

当我查看文件的属性时,文件路径与我习惯的不同.不是以:开头/Users/myusername/...,而是smb://server.msu.edu/.../myfilename.csv.

尝试阅读该文件,我尝试了以下内容:

read.csv('smb://server.msu.edu/.../myfilename.csv')
Run Code Online (Sandbox Code Playgroud)

但是,这没有用.

而不是通常的"没有这样的文件或目录"错误,这返回:

smb://server.msu.edu /.../ myfilename.csv在当前工作目录中不存在

我想文件路径需要不同的格式,但我无法弄清楚是什么.

你怎么能读到这种类型的文件R

smb r remote-access

20
推荐指数
3
解决办法
8574
查看次数

使用R中的lubridate包找到一年中的某一天

我希望找到一个带有lubridate的POSIXct类对象的一年中的某一天.例如,12-9-2015是第343天.

使用lubridate很容易找到一周或一个月的日期:

> lubridate::wday("2015-12-09 04:27:56 EST", labels = T)
Wed
> lubridate::day("2015-12-09 04:27:56 EST")
9
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以在一年中这样做?我搜索了文档和其他问题,但还没有找到答案.

r lubridate

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

需要记录未在R包中导出的函数中的参数吗?

我正在使用该devtools程序包来检查我正在开发的软件包是否已准备好提交给CRAN.

使用Roxygen2devtools,我记录了少数与功能#'@export,以便它们可用于当我开发的包被加载.

但是,当我运行时devtools::check(),似乎我需要记录未导出的函数,即可以由导出的函数调用的函数,但是使用该函数的人不可用也不需要.以下是输出的示例devtools::check():

checking Rd \usage sections ... WARNING
Undocumented arguments in documentation object 'calculate_agreement'
  ‘a_assign_star’ ‘a_assign’
Run Code Online (Sandbox Code Playgroud)

虽然该功能未导出,但我是否需要记录这些参数?

r devtools

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

如何以编程方式/在包中使用R Studio View()函数

我试图以View()编程方式/在包中使用R Studio 函数.

当我使用时utils::View(),使用与R Studio查看器不同的查看器(它似乎是内置的查看器R),但如果我使用View()(没有指定从中导出函数的位置),则会出现问题R CMD CHECK.

我查看了R Studio的备忘单,但这并未显示是否/从R Studio View()导出的位置.

r rstudio

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

突变多个/连续列(使用dplyr或base R)

我正在尝试创建代表重复测量的变量"波形".具体来说,我正在尝试创建表示变量1 - 10,11 - 20 ... 91-100的平均值的连续变量.请注意,"..."表示波3到9的变量,因为避免输入这些是我的目标!

这是一个示例数据框,df包含10行和100列:

mat <- matrix(runif(1000, 1, 10), ncol = 100)
df <- data.frame(mat)
dim(df)
> 10 100
Run Code Online (Sandbox Code Playgroud)

我已经使用了所有变量输入后都能dplyr正常mutate工作的函数,但是时间密集且容易出错.我没有找到办法这样做而不需要手动输入列的名称,正如我在下面开始做的那样(注意"......"表示波3到9):

df <- df %>% 
      mutate(wave_1 = (X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10) / 10,
             wave_2 = (X11 + X12 + X13 + X14 + X15 + X16 + X17 + X18 + X19 + X20) / 10, …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

向 geom_bar() / geom_col() 条添加图案或纹理?

有时,我需要为 geom_bar() / geom_col() 条(即黑白打印)使用某种图案或纹理。例如,某些人可能难以查看以下内容:

library(ggplot2)
library(dplyr, warn.conflicts=FALSE)
library(tidyr)

d <- iris %>% 
    group_by(Species) %>% 
    summarize_all(mean) %>% 
    gather(key, val, -Species)

ggplot(d, aes(x = Species, y = val, fill = key)) +
    geom_col(position = "dodge") +
    scale_fill_grey()
Run Code Online (Sandbox Code Playgroud)

示例条形图

Stack Overflow 上很好的问题和答案(也在这里)。然而,解决方案很复杂,基本上涉及手工创建图案或纹理。我想知道是否有人有一般的想法或建议或以不同方式解决这个问题的新方法。通常,当我认为我不能用 ggplot2 做某事时,这意味着改变我对解决它的看法 - 但其他(罕见)时间它只是还没有实现!

r ggplot2

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

如何在R中保存数据框

根据这个问题的答案,您可以使用save()函数在R中保存数据框"foo",如下所示:

save(foo,file="data.Rda")
Run Code Online (Sandbox Code Playgroud)

这是数据框"df":

> str(df)
'data.frame':   1254 obs. of  2 variables
$ text : chr  "RT @SchmittySays: I love this 1st grade #science teacher from #Duluth http://t.co/HWDYFnIyqV  #NSTA15 #AlbertEinstein #inspirat"| __truncated__ "RT @KVernonBHS: @smrtgrls would love Stellar Girls. Empowering female scientists rocks! #NSTA15 http://t.co/1ZU0yjVF67" "RT @leducmills: Leaving #SXSWedu to go straight to #NSTA15. There should be some sort of arbitrary conference-hopper social med"| __truncated__ "RT @KRScienceLady: Congrats to a wonderful colleague who  helped #ngss Bcome reality, Stephen Pruitt, …
Run Code Online (Sandbox Code Playgroud)

r save dataframe

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

引起提迪尔警告消息的原因:“度量值变量之间的属性不相同”

我有一个tibbledf

> df
# A tibble: 4 x 5
    profile Sepal.Length Sepal.Width Petal.Length Petal.Width
      <chr>        <dbl>       <dbl>        <dbl>       <dbl>
1 Profile 1       -1.011       0.850       -1.301      -1.251
2 Profile 2        0.542      -0.389        0.662       0.673
3 Profile 3       -0.376      -0.967        0.115       0.038
4 Profile 4        1.502       0.158        1.277       1.239
Run Code Online (Sandbox Code Playgroud)

当我使用`tidyr :: gather()时,如下所示:

tidyr::gather(df, var, val, -profile)
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

Warning message: attributes are not identical across measure variables; they will be dropped 
Run Code Online (Sandbox Code Playgroud)

我进行了一些搜索(并检查是否df有任何可能导致此问题的属性),但无法理解为什么打印此警告。

df <- structure(list(profile = c("Profile …
Run Code Online (Sandbox Code Playgroud)

r tidyr tidyverse

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