我有一个问题:如何transmute在不用手写每列的情况下使用每列?即,有类似的东西transmute_each()吗?
我想要执行以下操作:使用dplyr我想获得MWE的每列的z分数:
tickers <- c(rep(1,10),rep(2,10))
df <- data.frame(cbind(tickers,rep(1:20),rep(2:21),rep(2:21),rep(4:23),rep(3:22)))
colnames(df) <- c("tickers","col1","col2","col3","col4","col5")
df %>% group_by(tickers)
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以使用transmute来实现以下目的:
for(i in 2:ncol(df)){
df[,i] <- df[,i] - mean(df[,i])/sd(df[,i])
}
Run Code Online (Sandbox Code Playgroud)
非常感谢
当使用Rmarkdown构建包含引文的pdf时,默认情况下会删除引文的超链接.
看看产生的乳胶文件,我可以在pre-amble中看到\ usepackage {hyperref},但引用如下:
rmd input: @sharpe
latex output: sharpe (1999)
Run Code Online (Sandbox Code Playgroud)
因此,它以pdf格式生成非动态引文.
我期望的乳胶输出是:\ citet {sharpe},它以pdf格式生成超链接引文.
任何想法为什么它写出我的bibtex输入这样以及如何使其超链接?
我已经阅读了几个讨论和线程,详细说明了如何将乳胶前导码添加到 R 降价,但我还没有找到关于如何将乳胶前导码添加到 Rmd 文件的简单解释。我有乳胶模板,我想在我的 Rmd 的 PDF 和 Beamer 输出中使用。
我在添加序言参数时遇到了很大的困难。
我试过:
in_header
<latex preamble>
Run Code Online (Sandbox Code Playgroud)
也
%%
<preamble>
%%
Run Code Online (Sandbox Code Playgroud)
但似乎没有一个工作。
对有乳胶经验的人有什么解决方案,但使用 rmd 少得多?
ggplotly使用ggplot删除geom_line图的图例.
见下图:
library(plotly)
g <- ggplot(iris)
g = g + geom_line(aes(x = Sepal.Length, y = Sepal.Width, color = Species), size = 0.05)
g # Here is a legend
(gg <- ggplotly(g)) # Legend has now been removed.
Run Code Online (Sandbox Code Playgroud)
任何想法如何取回传奇?
我使用的是plotly_2.0.19和ggplot2_2.0.0.9000.
我正在寻找purrr::map_df 调用的循环中的next的等效项。
map_df 可以很好地处理 NULL 的数据帧(如下例所示),因此当我Result <- NULL在下面的示例中设置时它可以工作。
任何人都可以为我下面的插图提出一个通用的解决方案,不需要我设置Result <- NULL,而是立即进入“下一步”。
library(tidyverse)
set.seed(1000)
df <- data.frame(x = rnorm(100), y = rnorm(100), z = rep(LETTERS, 100))
Map_Func <- function(df) {
Sum_Num <- suppressWarnings(sqrt(sum(df$y)))
if( Sum_Num == "NaN" ) {
Result <- NULL
# I would like to have an equivalent to "next" here...
} else {
Result <- df %>% filter(y == max(y)) %>% mutate(Result = x*y)
}
Result
}
Test <- split(df, df$z) %>% map_df(~Map_Func(.)) …Run Code Online (Sandbox Code Playgroud) 我想用dplyr贬低我的所有列.我试过但是使用"do()"命令失败了.
我基本上想使用更简单的dplyr命令复制以下内容:
tickers <- c(rep(1,10),rep(2,10))
df <- data.frame(cbind(tickers,rep(1:20),rep(2:21)))
colnames(df) <- c("tickers","col1","col2")
df %>% group_by(tickers)
apply(df[,2:3],2,function(x) x - mean(x))
Run Code Online (Sandbox Code Playgroud)
我相信使用dplyr可以做得更好.
谢谢!
检查列表中的元素长度是否相等?
例如:
l <- list(c(1:3),c(2:7),c(12:13))
[[1]]
[1] 1 2 3
[[2]]
[1] 2 3 4 5 6 7
[[3]]
[1] 12 13
Run Code Online (Sandbox Code Playgroud)
我有一个包含许多条目的长列表,并想要一种方法来检查每个元素是否具有相同的长度.
由于长度不同(3,6,2),因此应返回FALSE.
我很好奇以下原因为何不起作用。尝试使用对动作按钮的反应进行绘图时,它无法在Shiny中显示绘图。
知道我在做什么错吗?我尝试了许多迭代和方法。有什么想法可以让Shiny在反应性环境中调用时可以生成图吗?
---
title: "Will not plot"
output: html_document
runtime: shiny
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r, echo = FALSE}
inputPanel(
actionButton("Plot", "Save and Open TRI"),
numericInput("Size", label = "Size", value = 1000, 1000, 5000, 1000)
)
# Works:
renderPlot({
plot(runif(1000)
)})
# Doesn't work:
eventReactive(input$Plot,
{
renderPlot({
plot(runif(1000)
)})
}
)
observeEvent(input$Plot,
{
renderPlot({
plot(runif(1000)
)})
}
)
```
Run Code Online (Sandbox Code Playgroud) 我想使用 dplyr 找到 data.frame 中各个列的等级相关性。
我确信这个问题有一个简单的解决方案,但我认为问题在于我在使用 cor 函数时无法在 dplyr 中的 summarise_each_ 中使用两个输入。
对于以下 df:
df <- data.frame(Universe=c(rep("A",5),rep("B",5)),AA.x=rnorm(10),BB.x=rnorm(10),CC.x=rnorm(10),AA.y=rnorm(10),BB.y=rnorm(10),CC.y=rnorm(10))
Run Code Online (Sandbox Code Playgroud)
我想获得所有 .x 和 .y 组合之间的等级相关性。我在下面的函数中遇到了问题????
cor <- df %>% group_by(Universe) %>%
summarize_each_(funs(cor(.,method = 'spearman',use = "pairwise.complete.obs")),????)
Run Code Online (Sandbox Code Playgroud)
我希望cor只包含相关对: AA.x.AA.y , AA.x,BB.y, ... 对于每个宇宙。
请帮忙!
由于我对Rcpp有点陌生,因此我可能在这里错过了一个窍门。
让我们创建两个矩阵:
library(Rcpp)
library(microbenchmark)
P <- matrix(0, 200,500)
for(i in 1:500) P[,i] <- rep(rep(sample(0:1), 2), 25)
Parent_Check <- matrix(0, nrow(P), nrow(P))
Run Code Online (Sandbox Code Playgroud)
我现在要完成以下操作:
Test1 <- function(){
for (i in 1:nrow(P)) {
Parent_Check[i,] <- apply(P, 1, function(x) all(x == P[i,]))
}
}
Test1()
Run Code Online (Sandbox Code Playgroud)
然后,我为all()创建了一个Rcpp版本,希望提高速度,定义为:
Rcpp::cppFunction(
'bool all_C(LogicalVector x) {
// Note the use of is_true to return a bool type.
return is_true(all(x == TRUE));
}
'
)
Run Code Online (Sandbox Code Playgroud)
使用all_C检查速度,事实证明速度较慢:
Test2 <- function(){
for (i in 1:nrow(P)) {
Parent_Check[i,] <- apply(P, 1, function(x) all_C(x …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用dplyr的新NSE语言方法来创建条件变异,使用矢量输入.我遇到麻烦的地方是将列设置为等于它自己,请参见下面的mwe:
df <- data.frame("Name" = c(rep("A", 3), rep("B", 3), rep("C", 4)),
"X" = runif(1:10),
"Y" = runif(1:10)) %>%
tbl_df() %>%
mutate_if(is.factor, as.character)
ColToChange <- "Name"
ToChangeTo <- "Big"
Run Code Online (Sandbox Code Playgroud)
现在,使用以下内容:
df %>% mutate( !!ColToChange := ifelse(X >= 0.5 & Y >= 0.5, ToChangeTo, !!ColToChange))
Run Code Online (Sandbox Code Playgroud)
将ColToChange值设置为Name,而不是回到其原始值.我因此尝试使用上面的语法来实现这一点:
df %>% mutate( !!ColToChange := ifelse(X >= 0.5 & Y >= 0.5, ToChangeTo, Name))
Run Code Online (Sandbox Code Playgroud)
但不是Name,它是矢量.