小编zes*_*sla的帖子

将数字转换为特殊格式

在我的数据处理中,我需要执行以下操作:

    #convert '7-25' to '0007 0025'
    #pad 0's to make each four-digit number 
    digits.formatter <- function ('7-25'){.......?}
Run Code Online (Sandbox Code Playgroud)

我不知道如何在R中做到这一点.任何人都可以帮忙吗?

r

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

创建一个新列,它是dplyr中特定列(由其名称选择)的总和

我的问题是如何创建一个新列,它是dplyr中某些特定列(由其名称选择)的总和.例如,使用iris数据集,我创建一个名为Petal的新列,它是Petal.Length和Petal.Width的总和.

iris %>% mutate(Petal = Petal.Length+Petal.Width)
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个20列的数据集,其名称中包含'Petal'.我想创建一个"Petal"列,它总结了所有这些列.我绝对不想在我的代码中键入所有列名称.感觉在dplyr中应该有一行代码可以实现.感谢是否有人可以提供帮助.

r dplyr tidyverse

4
推荐指数
2
解决办法
3483
查看次数

如何在r中的多重比较中将字符串变量传递给multcomp::glht函数

我正在做单向方差分析和事后多重比较。以 mtcars 数据集为例:

mtcars$cyl <- as.factor(mtcars$cyl)
aov<- aov(mpg~cyl, data=mtcars)
summary(multcomp::glht(aov, linfct=mcp(cyl='Dunnet')))
Run Code Online (Sandbox Code Playgroud)

但是,我不想将变量硬编码为 cyl。所以我创建了一个变量 var='cyl':

var <- 'cyl'
aov <- aov(as.formula(paste('mpg~', var)), data=mtcars)
summary(multcomp::glht(aov, linfct=mcp( var='Dunnet')))
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

Error in mcp2matrix(model, linfct = linfct) : Variable(s) ‘var’ have been specified in ‘linfct’ but cannot be found in ‘model’!
Run Code Online (Sandbox Code Playgroud)

我认为问题来自在 mcp 函数中传递 var 。我怎样才能解决这个问题?我试过: as.name(var) , eval(quote(var)) ......但没有运气......非常感谢你的帮助。

r dplyr nse

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

添加 geom_line 以链接箱图中的所有 geom_point,以 ggplot2 的因子为条件

我有一个患者数据,如下所示。每个受试者在 4 个不同的时间点进行测量。

df <- data.frame(
    result = rnorm(48, 1,3),
    time = rep(c('t1', 't2', 't3', 't4'), 12  ),
    subject = rep(c(1:12), each=4),
    gender = rep (c('M', 'F'), 6, each=4) )
Run Code Online (Sandbox Code Playgroud)

我制作了一个带有重叠数据点的箱线图:

pd = position_jitterdodge(dodge.width = 0.75, jitter.width = 0.3)
df %>% 
    ggplot (aes(x= time, y=result, fill=gender))+
    geom_boxplot(alpha=0.2)+
    geom_point(aes(color = gender),position = pd)+
    scale_fill_brewer(palette = 'Set1')+
    scale_color_brewer(palette = 'Set1')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在我需要添加线条来链接时间过程中的所有患者(数据点)。

df %>% 
    ggplot (aes(x= time, y=result, fill=gender))+
    geom_boxplot(alpha=0.2)+
    geom_point(aes(color = gender, group=subject),position = pd)+
    geom_line(aes(color=gender, group=subject), 
    position=pd, alpha=0.3)+
    scale_fill_brewer(palette = 'Set1')+ …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

以编程方式重命名dplyr中的列

我可以这样重命名dplyr中的列:

mtcars %>% dplyr::rename('cylinder'=cyl)
Run Code Online (Sandbox Code Playgroud)

但是,如果我想以编程方式更改列名,如下所示:

cnames=c('cylinder', 'mile_per_gallon')
mtcars %>% dplyr::rename(cnames[1]=cyl)
# or like this
mtcars %>% dplyr::rename( !!sym(cnames[1])=cyl)
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

Error: unexpected '=' in "mtcars %>% dplyr::rename(cnames[1]="
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样。有谁知道如何使它工作?谢谢。

r dplyr

3
推荐指数
2
解决办法
827
查看次数

如何使用tensorflow进行多任务深度学习

有谁知道如何使用TensorFlow进行多任务深度学习?也就是说,共享底层而不共享顶层.你能不能分享一些示例代码?

neural-network deep-learning tensorflow

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

在dplyr中切割链接操作中的向量

如何用dplyr切割链接中的向量

v <- 1:10
#can be easily done with 
v[v > 5]
#use chaining 
v %>% ??
Run Code Online (Sandbox Code Playgroud)

我想让自己习惯链接......

r dplyr

2
推荐指数
3
解决办法
627
查看次数

运行多个模型并将模型比较结果保存在 r 中的数据框中

我想运行 lm 模型并保存模型比较结果并提取 p 值。我想将所有信息保存在数据框中。以钻石数据集为例:

    diamonds %>% 
    group_by(cut) %>% 
    do(model1 = lm(price~carat, data=.),
       model2 = lm(price~carat+depth, data=.)) %>% 
    mutate(anova = anova(model2,model1)) %>% 
    mutate(pval= anova$'Pr(>F'[2])
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Error in mutate_impl(.data, dots) : 
  Column `anova` must be length 1 (the group size), not 6
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 为什么我收到错误消息以及如何在数据框中保存 anova 结果?
  2. 如果 lm 或 anova 在某些子集上不起作用,如何使整个过程起作用?像try..catch..

我的真实数据比这更复杂。只需使用菱形和线性模型来说明这个想法。非常感谢。

r dplyr tidyverse

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

使用 pandas 时的异常处理 apply

我可以使用 series.str.extract 从熊猫系列中提取子字符串。

ds = pd.Series(['1A apple', '1B pear', '3C orange', 'grape'])
ds.str.extract('(\\d.{1}).*', expand=False)
Run Code Online (Sandbox Code Playgroud)

我最初尝试的是使用 apply 函数。

ds.apply(lambda x: re.search('(\\d.{1}).*', x).group(1))
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

AttributeError: 'NoneType' object has no attribute 'group'
Run Code Online (Sandbox Code Playgroud)

似乎搜索模式不适用于第四个元素'grape'。所以它返回一个nonetype。我的问题是如何修复上面的应用函数以使其工作?我很好奇如何使用 apply 函数使用 str.extract 来实现相同的任务。非常感谢。

python exception-handling apply dataframe pandas

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

无法在 r 闪亮的 docker 中安装 devtools

我正在尝试为我闪亮的应用程序构建一个 Docker 映像。下面是我的dockerfile. 当我构建图像时,其他一切看起来都很好,除了我收到错误消息Error in library(devtools) : there is no package called \xe2\x80\x98devtools\xe2\x80\x99 Execution halted。我也尝试过devtools::install_github(\'nik01010/dashboardthemes\')但没有成功。我不知道为什么?可能会出什么问题?有谁知道我的 dockerfile 有什么问题吗?多谢。

\n\n
# Install R version 3.6\nFROM r-base:3.6.0\n\n# Install Ubuntu packages\nRUN apt-get update && apt-get install -y \\\n    sudo \\\n    gdebi-core \\\n    pandoc \\\n    pandoc-citeproc \\\n    libcurl4-gnutls-dev \\\n    libcairo2-dev/unstable \\\n    libxt-dev \\\n    libssl-dev\n\n# Download and install ShinyServer (latest version)\nRUN wget --no-verbose https://s3.amazonaws.com/rstudio-shiny-server-os-build/ubuntu-12.04/x86_64/VERSION -O "version.txt" && \\\n    VERSION=$(cat version.txt)  && \\\n    wget --no-verbose "https://s3.amazonaws.com/rstudio-shiny-server-os-build/ubuntu-12.04/x86_64/shiny-server-$VERSION-amd64.deb" -O ss-latest.deb && \\\n    gdebi …
Run Code Online (Sandbox Code Playgroud)

r shiny docker

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