Questions tagged «r-faq»

创建r-faq标签是为了将有限数量的问题分组,以讨论定期出现在R标签上的问题。它不是R for SO的官方常见问题解答,但应作为有关常见问题的有趣信息来源。

11
快速读取非常大的表作为数据框
我有非常大的表(3000万行),我想将其作为R中的数据帧加载。 read.table()它具有许多便利的功能,但是似乎实现中有很多逻辑会使事情变慢。就我而言,我假设我提前知道了列的类型,该表不包含任何列标题或行名,并且没有任何我要担心的病理字符。 我知道使用列表读取表scan()可能很快,例如: datalist <- scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0))) 但是我将其转换为数据帧的一些尝试似乎使上述性能降低了6倍: df <- as.data.frame(scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0)))) 有更好的方法吗?还是完全不同的解决方法?
502 r  import  dataframe  r-faq 

16
创建一个空的data.frame
我正在尝试初始化没有任何行的data.frame。基本上,我想为每一列指定数据类型并为其命名,但因此没有创建任何行。 到目前为止,我能做的最好的事情是: df <- data.frame(Date=as.Date("01/01/2000", format="%m/%d/%Y"), File="", User="", stringsAsFactors=FALSE) df <- df[-1,] 这将创建一个data.frame,其中包含包含我想要的所有数据类型和列名的单行,而且还会创建一个无用的行,然后将其删除。 有一个更好的方法吗?
480 r  dataframe  r-faq 

2
为什么`[`优于`subset`?
当我需要过滤data.frame,即提取满足某些条件的行时,我更喜欢使用以下subset功能: subset(airquality, Month == 8 & Temp > 90) 而不是[功能: airquality[airquality$Month == 8 & airquality$Temp > 90, ] 我偏爱的主要原因有两个: 我发现代码从左到右读起来更好。即使对R一无所知的人也可以说出subset上面的陈述在做什么。 因为列可以在select表达式中称为变量,所以我可以节省一些击键。在上面的示例中,我只需输入airquality一次subset,但只需输入3次[。 因此,我过着幸福的生活,subset在任何地方都可以使用它,因为它更短且读起来更好,甚至向我的R编码员倡导它的美。但是昨天我的世界崩溃了。在阅读subset文档时,我注意到以下部分: 警告 这是旨在交互使用的便利功能。对于编程,最好使用标准的子集函数,例如[,尤其是参数子集的非标准评估会产生意想不到的后果。 有人可以帮助澄清作者的意思吗? 首先,“ 交互使用 ” 是什么意思?我知道交互式会话是什么,而不是在BATCH模式下运行的脚本,但是我看不出它应该有什么区别。 然后,请您解释一下“ 论点子集的非标准评估 ”,为什么这样做很危险,也许可以举个例子?
400 r  filter  subset  r-faq 


6
如何从源代码安装R软件包?
一位朋友给我发送了关于R的有关在NYtimes上进行网络抓取的出色教程。我真的很想尝试。但是,第一步是从源代码安装名为RJSONIO的软件包。 我对R非常了解,但是我不知道如何从源代码安装软件包。 我正在运行Mac OSX。
392 r  package  install  r-faq 

30
是否有用于查找模式的内置功能?
在R,mean()并且median()是该做你所期望的标准功能。 mode()告诉您对象的内部存储模式,而不是在其参数中出现最多的值。但是是否有一个标准库函数实现矢量(或列表)的统计模式?
391 r  statistics  r-faq 

12
如何将两个字符串串联在一起?
如何连接(合并,合并)两个值?例如,我有: tmp = cbind("GAD", "AB") tmp # [,1] [,2] # [1,] "GAD" "AB" 我的目标是将“ tmp”中的两个值连接为一个字符串: tmp_new = "GAD,AB" 哪个功能可以为我执行此操作?

10
从数据框中提取特定列
我有一个包含6列的R数据框,并且我想创建一个仅包含三列的新数据框。 假设我的数据帧df,我想提列A,B和E,这是唯一的命令,我可以计算出: data.frame(df$A,df$B,df$E) 有没有更紧凑的方法可以做到这一点?
364 r  dataframe  r-faq 

13
如何修剪前导和尾随空格?
我在data.frame中的前导和尾随空白时遇到了一些麻烦。例如,我想看看在特定row的data.frame基础上有一定的条件: > myDummy[myDummy$country == c("Austria"),c(1,2,3:7,19)] [1] codeHelper country dummyLI dummyLMI dummyUMI [6] dummyHInonOECD dummyHIOECD dummyOECD <0 rows> (or 0-length row.names) 我想知道为什么我没有得到预期的产出,因为我的国家显然存在奥地利这个国家data.frame。在查看了我的代码历史记录并尝试找出出了什么问题之后,我尝试了: > myDummy[myDummy$country == c("Austria "),c(1,2,3:7,19)] codeHelper country dummyLI dummyLMI dummyUMI dummyHInonOECD dummyHIOECD 18 AUT Austria 0 0 0 0 1 dummyOECD 18 1 我在命令中所做的更改只是在奥地利之后增加了一个空白。 显然还会出现更多令人讨厌的问题。例如,当我想基于“国家/地区”列合并两个框架时。一个data.frame使用"Austria "而另一帧使用"Austria"。匹配无效。 有没有一种很好的方法可以在屏幕上“显示”空白,从而使我意识到问题所在? 我可以删除R中的前导和尾随空格吗? 到目前为止,我曾经写过一个简单的Perl脚本来删除空格,但是如果我能以某种方式在R中完成它会很好。

14
如何按组对变量求和
我有两列的数据框。第一列包含诸如“第一”,“第二”,“第三”之类的类别,第二列具有代表我从“类别”中看到特定组的次数的数字。 例如: Category Frequency First 10 First 15 First 5 Second 2 Third 14 Third 20 Second 3 我想按类别对数据进行排序,并对所有频率求和: Category Frequency First 30 Second 5 Third 34 我将如何在R中执行此操作?
357 r  dataframe  aggregate  r-faq 

8
如何添加前导零?
我有一组看起来像这样的数据: anim <- c(25499,25500,25501,25502,25503,25504) sex <- c(1,2,2,1,2,1) wt <- c(0.8,1.2,1.0,2.0,1.8,1.4) data <- data.frame(anim,sex,wt) data anim sex wt anim2 1 25499 1 0.8 2 2 25500 2 1.2 2 3 25501 2 1.0 2 4 25502 1 2.0 2 5 25503 2 1.8 2 6 25504 1 1.4 2 我希望在每个动物ID之前添加一个零: data …

5
如何在R中编写trycatch
我想编写trycatch代码来处理从网络下载时出现的错误。 url <- c( "http://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html", "http://en.wikipedia.org/wiki/Xz") y <- mapply(readLines, con=url) 这两个语句成功运行。在下面,我创建了一个不存在的网址: url <- c("xxxxx", "http://en.wikipedia.org/wiki/Xz") url[1]不存在。一个人如何编写一个trycatch循环(函数),以便: 如果URL错误,输出将为:“ Web URL错误,无法获取”。 如果URL错误,代码不会停止,而是继续下载直到URL列表的末尾?

28
检查丢失的软件包并安装它们的优雅方法?
这些天,我似乎与合著者分享了很多代码。他们中的许多人是R新手/中级用户,他们没有意识到他们必须安装尚未拥有的软件包。 有没有一种优雅的调用方式,installed.packages()如果缺少的话,可以与我正在加载和安装的方式进行比较吗?
336 r  packages  r-faq 


11
如何重新排序数据框中的列?
如何更改此输入(按顺序:时间,输入,输出,文件): Time In Out Files 1 2 3 4 2 3 4 5 输入到此输出(顺序为:时间,输出,输入,文件)? Time Out In Files 1 3 2 4 2 4 3 5 这是虚拟R数据: table <- data.frame(Time=c(1,2), In=c(2,3), Out=c(3,4), Files=c(4,5)) table ## Time In Out Files ##1 1 2 3 4 ##2 2 3 4 5
311 r  sorting  dataframe  r-faq 

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.