Questions tagged «r»

R是一种免费的开源编程语言和软件环境,用于统计计算,生物信息学,可视化和通用计算。请提供最少且可复制的示例以及所需的输出。使用`dput()`作为数据,并通过`library()`调用指定所有非基本包。不要为数据或代码嵌入图片,而应使用缩进的代码块。对于统计相关的问题,请使用https://stats.stackexchange.com。

4
查找数据帧中是否存在列
我有一个名为“ abcframe”的data.frame a b c 1 1 1 2 2 3 如何查找给定数据框中是否存在列?例如,我想查找data.frame abcframe中是否存在列d。
110 r 

2
ggplot2图例到底部和水平
如何将ggplot2图例移至图的底部并水平旋转? 样例代码: library(reshape2) # for melt df <- melt(outer(1:4, 1:4), varnames = c("X1", "X2")) p1 <- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value)) p1 + scale_fill_continuous(guide = guide_legend()) 所需(近似)结果:
109 r  ggplot2 

3
如何将垂直的geom_vline设置为上课日期的x轴?
即使我在POSIXct和的google组中找到了Hadley的帖子geom_vline,也无法完成。我有一个时间序列,例如1998年,2005年和2010年,我想画一条垂直线。我尝试了ggplotand qplot语法,但仍然看不到任何垂直线,或者在第一个垂直网格上绘制了垂直线,整个系列向右有些奇怪。 gg <- ggplot(data=mydata,aes(y=somevalues,x=datefield,color=category)) + layer(geom="line") gg + geom_vline(xintercept=mydata$datefield[120],linetype=4) # returns just the time series plot I had before, # interestingly the legend contains dotted vertical lines 我的日期字段格式为“ 1993-07-01”,属于class Date。
109 r  date  ggplot2  time-series 

6
将一列中以逗号分隔的字符串拆分为单独的行
我有一个数据框,如下所示: data.frame(director = c("Aaron Blaise,Bob Walker", "Akira Kurosawa", "Alan J. Pakula", "Alan Parker", "Alejandro Amenabar", "Alejandro Gonzalez Inarritu", "Alejandro Gonzalez Inarritu,Benicio Del Toro", "Alejandro González Iñárritu", "Alex Proyas", "Alexander Hall", "Alfonso Cuaron", "Alfred Hitchcock", "Anatole Litvak", "Andrew Adamson,Marilyn Fox", "Andrew Dominik", "Andrew Stanton", "Andrew Stanton,Lee Unkrich", "Angelina Jolie,John Stevenson", "Anne …
109 r  string  split  r-faq 


5
选择R中data.frame的前4行
如何选择a的前4行data.frame: Weight Response 1 Control 59 0.0 2 Treatment 90 0.8 3 Treatment 47 0.1 4 Treamment 106 0.1 5 Control 85 0.7 6 Treatment 73 0.6 7 Control 61 0.2
109 r  dataframe 

6
如何在其他脚本中包含(源)R脚本
我已经创建了一个实用程序R脚本util.R,希望在项目中的其他脚本中使用它。确保该脚本定义的功能可在其他脚本中使用的正确方法是什么? 我正在寻找类似于该require功能的内容,即仅在尚未加载程序包时才加载该程序包。我不想调用,source("util.R")因为这将在每次调用脚本时加载该脚本。 我知道我会得到一些答案,告诉我创建一个程序包,就像在组织R源代码中一样:)但是我没有创建将在其他地方使用的东西,它只是一个独立的项目。
108 r 

7
在read.csv中指定colClasses
我试图在R colClasses中的read.csv函数中指定选项。在我的数据中,第一列“时间”基本上是一个字符向量,而其余各列都是数字。 data <- read.csv("test.csv", comment.char="" , colClasses=c(time="character", "numeric"), strip.white=FALSE) 在上面的命令中,我希望R在“时间”列中将其读取为“字符”,并将其余部分读取为数字。尽管在命令完成后“数据”变量确实具有正确的结果,但R返回了以下警告。我想知道如何解决这些警告? Warning messages: 1: In read.table(file = file, header = header, sep = sep, quote = quote, : not all columns named in 'colClasses' exist 2: In tmp[i[i > 0L]] <- colClasses : number of items to replace is not …
108 r  csv  read.csv 

5
将列中的值转换为R中现有数据框中的行名
我想将现有数据框的列中的值转换为行名。是否可以执行此操作而无需导出数据帧,然后通过row.names =调用将其重新导入? 例如,我想转换: > samp names Var.1 Var.2 Var.3 1 A 1 5 0 2 B 2 4 1 3 C 3 3 2 4 D 4 2 3 5 E 5 1 4 变成: > samp.with.rownames Var.1 Var.2 Var.3 A 1 5 0 B 2 4 1 C 3 …
108 r 

10
多行评论解决方法?
我(有点)已经知道这个问题的答案。但是我认为这是R用户列表中经常被问到的问题,应该有一个可靠的好答案。 据我所知,R中没有多行注释功能。那么,有人有什么好的解决方法吗? 尽管R中很多工作通常涉及交互式会话(这使人们对多行注释的需求产生怀疑),但有时我不得不将脚本发送给同事和同学,其中很多涉及不平凡的代码块。对于来自其他语言的人来说,这是一个很自然的问题。 过去我使用引号。由于字符串支持换行符,因此使用 " Here's my multiline comment. " a <- 10 rocknroll.lm <- lm(blah blah blah) ... 工作良好。有谁有更好的解决方案?
108 r  comments  r-faq 

8
将每个因子级别的R因子自动扩展为1/0指标变量的集合
我有一个R数据框,其中包含一个要“扩展”的因子,因此对于每个因子水平,新数据框中都有一个关联的列,其中包含一个1/0指示器。例如,假设我有: df.original <-data.frame(eggs = c("foo", "foo", "bar", "bar"), ham = c(1,2,3,4)) 我想要: df.desired <- data.frame(foo = c(1,1,0,0), bar=c(0,0,1,1), ham=c(1,2,3,4)) 因为对于某些需要完全数字化数据框架的分析(例如,主成分分析),我认为可能内置了此功能。编写一个函数来做到这一点并不难,但是我可以预见到一些与列名有关的挑战,如果已经存在,我宁愿使用它。
108 r 


4
n种颜色的渐变,范围从颜色1和颜色2
我经常使用ggplot2它来使渐变更好(请单击此处查看示例)。我需要在基础上工作,我认为scales也可以在其中使用它来创建颜色渐变,但是我对如何做到这一点很不满意。基本目标是生成n种颜色的调色板,范围从x颜色到y颜色。该解决方案需要在基础上工作。这是一个起点,但是没有输入n的位置。 scale_colour_gradientn(colours=c("red", "blue")) 我很清楚: brewer.pal(8, "Spectral") 来自RColorBrewer。我在寻找更多类似于ggplot2处理渐变的方法,该方法表示我有这两种颜色,并且一路上需要15种颜色。我怎样才能做到这一点?
108 r  gradient 

4
转置数据帧
我需要转置一个大数据框,所以我使用了: df.aree <- t(df.aree) df.aree <- as.data.frame(df.aree) 这是我得到的: df.aree[c(1:5),c(1:5)] 10428 10760 12148 11865 name M231T3 M961T5 M960T6 M231T19 GS04.A 5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04 GS16.A 5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04 GS20.A 5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04 GS40.A 3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04 我的问题是我需要消除新的列名(10428、10760、12148、11865),因为我需要使用第一行作为列名。 我尝试使用col.names()功能,但没有得到所需的东西。 你有什么建议吗? 编辑 谢谢你的建议!!!使用它,我获得: df.aree[c(1:5),c(1:5)] M231T3 M961T5 M960T6 M231T19 GS04.A 5.847557e+03 …
107 r  dataframe 

5
收集多组列
我有一项在线调查的数据,其中受访者会经历1-3次问题循环。调查软件(Qualtrics)记录在多列,也就是说这个数据,Q3.2的调查将在列Q3.2.1.,Q3.2.2.以及Q3.2.3.: df <- data.frame( id = 1:10, time = as.Date('2009-01-01') + 0:9, Q3.2.1. = rnorm(10, 0, 1), Q3.2.2. = rnorm(10, 0, 1), Q3.2.3. = rnorm(10, 0, 1), Q3.3.1. = rnorm(10, 0, 1), Q3.3.2. = rnorm(10, 0, 1), Q3.3.3. = rnorm(10, 0, 1) ) # Sample data id time Q3.2.1. Q3.2.2. …
107 r  reshape  dplyr  qualtrics  tidyr 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.