我想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)
而我想要的是:
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)
作为一个附带问题,我注意到当刻度标签很大时,轴标签会很快接近刻度标签。有没有办法在它们之间设置自动间距?
我正在使用该earlywarnings包,并且想编辑该qda_ews函数中编写的函数之一。我可以fix(...),但我想编辑的功能由于某种原因在我使用时没有列出fix。
该函数称为generic_RShiny. 这是 github 的链接( https://github.com/earlywarningtoolbox/earlywarnings-R/blob/master/earlywarnings/R/qda_ews.R)。
如何访问整个qda_ews.R代码以进行我需要的更改?
假设我有一个像这样的数据框:
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?
自从早期成为RStudio用户以来,我刚刚在我的本地ubuntu VM上安装了RStudio Server.浏览器版本行动迅速,提供用户管理等等 - 这让我印象深刻的原因很多.我也喜欢将它与基于LDAP的用户管理集成的事实似乎并不是一件轻而易举的事.
此外,我一直在关注opencpu.org和Jeroen Ooms的其他项目的开发.像lme4这样的应用程序特别适合我.
我正在为自己的研究所开发一个特定机构的R软件包,并希望通过添加应用程序服务器和添加基于Web的gui来增加其在组织内的使用.
上面描述的两个项目提供的方式比我需要的多,所以不需要重新发明轮子.但我不确定我应该在这里使用哪种轮子.
您将使用哪种体系结构来构建基于Web的GUI,并使用LDAP用户管理(使用外部LDAP服务器)进行自定义程序包?
我在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) 我有两个数据框:
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代码,我正在从文件中读取文本并在条形图上绘制重复的短语.出于某种原因,条形图仅显示单个单词而不是多个措辞短语.我哪里错了?
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)
我的输出:
样本数据: 样本数据提取
假设我有一个如下所示的向量:
x <- sample(5, 500, replace = TRUE)
Run Code Online (Sandbox Code Playgroud)
这样每个元素对应于从1到5的某个索引.
从这个向量创建二元邻接矩阵的有效方法是什么?详细说明,矩阵A应该是A[i,j] = 1if x[i] = x[j]和0否则.
我有一个矩阵 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中,我使用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()才能识别它?