小编lmo*_*lmo的帖子

让ggplot2在顶部只写一次轴标签的数量级

我想ggplot2只将科学记数法的第一部分写到轴上,然后在轴的顶部添加一个 $x 10^n$ 数量级。有没有一个功能可以做到这一点?

这是一个带有 hack 的 MWE 来说明我的意思:

ggplot(data = data.frame(x = 1:10, y = seq(1, 2, l = 10)*1000), aes(x,y)) + geom_line()
Run Code Online (Sandbox Code Playgroud)

未缩放 y 轴

而我想要的是:

ggplot(data = data.frame(x = 1:10, y = seq(1, 2, l = 10)*1000), aes(x,y)) + geom_line() +
  scale_y_continuous(breaks = c(1, 1.25, 1.5, 1.75, 2, 2.05)*1000, label = c(1, 1.25, 1.5, 1.75, 2, "x 10^3"))
Run Code Online (Sandbox Code Playgroud)

缩放 y 轴

作为一个附带问题,我注意到当刻度标签很大时,轴标签会很快接近刻度标签。有没有办法在它们之间设置自动间距?

label axis r ggplot2

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

如何编辑 R 函数的源代码?

我正在使用该earlywarnings包,并且想编辑该qda_ews函数中编写的函数之一。我可以fix(...),但我想编辑的功能由于某种原因在我使用时没有列出fix

该函数称为generic_RShiny. 这是 github 的链接( https://github.com/earlywarningtoolbox/earlywarnings-R/blob/master/earlywarnings/R/qda_ews.R)。

如何访问整个qda_ews.R代码以进行我需要的更改?

r

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

使用“summarise”的数据帧列的第二个(或第三个)最大值

假设我有一个像这样的数据框:

group1 <- c('a','a','a','a','a','a','b','b','b','b','b','b','b','b')
group2 <- c('x','y','x','y','x','y','x','y','x','y','x','y','x','y')
value <- round(runif(14, min=0, max=1), digits = 2)

df1 <- as.data.frame(cbind(group1,group2,value))
df1$value <- as.numeric(df1$value)
Run Code Online (Sandbox Code Playgroud)

dplyr通过使用包和函数,可以轻松获得仅包含每组最大值的新数据框summarise

df2 <- summarise(group_by(df1,group1),max_v = max(value))
Run Code Online (Sandbox Code Playgroud)

但我想要的是一个新的数据框,其中包含每组的 3 个最大值,执行类似的操作:

df2 <- summarise(group_by(df1,group1),max_v = max(value),max2_v = secondmax(value),max3_v = thirdmax(value))
Run Code Online (Sandbox Code Playgroud)

有没有办法在不使用该功能的情况下做到这一点sort

r max dataframe dplyr

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

RStudio Server vs opencpu.org用于自己包的基于Web的GUI?

自从早期成为RStudio用户以来,我刚刚在我的本地ubuntu VM上安装了RStudio Server.浏览器版本行动迅速,提供用户管理等等 - 这让我印象深刻的原因很多.我也喜欢将它与基于LDAP的用户管理集成的事实似乎并不是一件轻而易举的事.

此外,我一直在关注opencpu.org和Jeroen Ooms的其他项目的开发.像lme4这样的应用程序特别适合我.

我正在为自己的研究所开发一个特定机构的R软件包,并希望通过添加应用程序服务器和添加基于Web的gui来增加其在组织内的使用.

上面描述的两个项目提供的方式比我需要的多,所以不需要重新发明轮子.但我不确定我应该在这里使用哪种轮子.

您将使用哪种体系结构来构建基于Web的GUI,并使用LDAP用户管理(使用外部LDAP服务器)进行自定义程序包?

r rstudio opencpu rstudio-server

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

无法安装包车

我在Linux薄荷17.3 64位使用R版本3.2.3.我试图安装包"car" dependencies=TRUE,但安装失败,并显示以下错误消息:

> warnings()
Warning messages:
1: In install.packages("car", dependencies = T) :
installation of package ‘minqa’ had non-zero exit status
2: In install.packages("car", dependencies = T) :
installation of package ‘RcppEigen’ had non-zero exit status
3: In install.packages("car", dependencies = T) :
installation of package ‘leaps’ had non-zero exit status
4: In install.packages("car", dependencies = T) :
installation of package ‘lmtest’ had non-zero exit status
5: In install.packages("car", dependencies = T) :
installation of package ‘rgl’ had …
Run Code Online (Sandbox Code Playgroud)

64-bit r linux-mint install.packages r-car

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

用ID替换另一个数据框中的值

我有两个数据框:

as1 <- data.frame(ID = c(1,2,3,4,5,6),
                  pID = c(21,22,23,24,25,26),
                  Values = c(435,33,45,NA, NA,12))
as2 <- data.frame(ID = c(4,5),
                  pid = c(24,25),
                  Values = c(544, 676))
Run Code Online (Sandbox Code Playgroud)

我需要通过匹配ID和pID将as1中的NA值替换为as2中的NA值

我需要获取结果数据框架为:

  resultdf
    ID pID Values
    1  1  21    435
    2  2  22     33
    3  3  23     45
    4  4  24    544
    5  5  25    676
    6  6  26     12
Run Code Online (Sandbox Code Playgroud)

我尝试先做子集,然后na.omit()再执行rbind...但是我丢失了索引。

r dataframe

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

NGramTokenizer没有按预期工作

我有一个简单的R代码,我正在从文件中读取文本并在条形图上绘制重复的短语.出于某种原因,条形图仅显示单个单词而不是多个措辞短语.我哪里错了?

install.packages("xlsx")
install.packages("tm")
install.packages("wordcloud")
install.packages("ggplot2")

library(xlsx)
library(tm)
library(wordcloud)
library(ggplot2)

setwd("C://Users//608447283//desktop//R_word_charts")


test <- Corpus(DirSource"C://Users//608447283//desktop//R_word_charts//source"))

test <- tm_map(test, stripWhitespace)
test <- tm_map(test, tolower)
test <- tm_map(test, removeWords,stopwords("english"))
test <- tm_map(test, removePunctuation)
test <- tm_map(test, PlainTextDocument)

tok <- function(x) NGramTokenizer(x, Weka_control(min=3, max=10))
tdm <- TermDocumentMatrix(test,control = list(tokenize = tok))
termFreq <- rowSums(as.matrix(tdm))

termFreq <- subset(termFreq, termFreq>=50)

write.csv(termFreq,file="TestCSV1")
TestCSV <- read.csv("C:/Users/608447283/Desktop/R_word_charts/TestCSV1")

ggplot(data=TestCSV, aes(x=X, y=x)) +
  geom_bar(stat="identity") + theme(axis.text.x = element_text(angle = 90, hjust = 1))
Run Code Online (Sandbox Code Playgroud)

我的输出:

在此输入图像描述

样本数据: 样本数据提取

r n-gram ggplot2

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

从索引向量创建二元邻接矩阵

假设我有一个如下所示的向量:

x <- sample(5, 500, replace = TRUE)
Run Code Online (Sandbox Code Playgroud)

这样每个元素对应于从1到5的某个索引.

从这个向量创建二元邻接矩阵的有效方法是什么?详细说明,矩阵A应该是A[i,j] = 1if x[i] = x[j]和0否则.

r matrix adjacency-matrix

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

将函数(分位数)应用于矩阵行并使用结​​果修改行

我有一个矩阵 A,其中填充了形状为 10x10 的随机值。如何对每一行执行函数(找到第 75 个分位数),并将 A 的该行中的每个元素除以该结果?

在下面的尝试中,我得到了 q 的单个值,但 q 应该至少有 10 个值(每行一个)。那时我应该能够使用 进行按元素除法A/q。我究竟做错了什么?

A <- matrix(rnorm(10 * 10), 10, 10)
q <- c(quantile(A[1,], 0.75))
A/q
Run Code Online (Sandbox Code Playgroud)

r matrix

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

rang()无法识别列名参数

在R中,我使用dplyr,更具体地说arrange()。该arrange功能某种程度上无法按预期工作。

在下面的示例中,首先存储列的名称,然后将该变量作为参数传递给名为“ my_function”的自定义函数。

target_column = 'mean_age'

# below the function
my_function <- function(target_column, number){
    df <- read.csv('file.csv', stringsAsFactors=FALSE)
    df <- df[, c(1,4,10)]
    names(df) <-  c('place','state','mean_age')
    df1 <- df %>% group_by(state) %>% arrange(target_column) 
    df1 %>% summarise(rank = nth(target_column, number))        
}
Run Code Online (Sandbox Code Playgroud)

当由于输入以下内容而调用“ my_function”时,R返回错误arrange()

“ range_impl(.data,点)中的错误:位置1处的大小(1)不正确,预期为4000”

当将列名直接放入时arrange(),它会接受参数,而不是引用字符串的变量(如上述示例)。

df %>% group_by(state) %>% arrange(mean_age) 
Run Code Online (Sandbox Code Playgroud)

我如何以一种更好的方式将列名的参数传递给“ my_function”,这样arrange()才能识别它?

r dplyr

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