相关疑难解决方法(0)

将data.frame列从因子转换为字符

我有一个数据框.我们叫他bob:

> head(bob)
                 phenotype                         exclusion
GSM399350 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399351 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399352 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399353 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399354 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399355 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
Run Code Online (Sandbox Code Playgroud)

我想连接这个数据框的行(这将是另一个问题).但看: …

r dataframe

329
推荐指数
11
解决办法
55万
查看次数

data.frame中每组的平均值

我有一个data.frame,我需要计算每组的平均值(即每个Month,下面).

Name     Month  Rate1     Rate2
Aira       1      12        23
Aira       2      18        73
Aira       3      19        45
Ben        1      53        19
Ben        2      22        87
Ben        3      19        45
Cat        1      22        87
Cat        2      67        43
Cat        3      45        32
Run Code Online (Sandbox Code Playgroud)

我的期望的输出是像下面,其中对于所述的值Rate1Rate2是组装置.请忽略这个值,我已经为这个例子做了补充.

Name       Rate1       Rate2
Aira        23.21       12.2
Ben         45.23       43.9
Cat         33.22       32.2
Run Code Online (Sandbox Code Playgroud)

aggregate r

144
推荐指数
8
解决办法
40万
查看次数

为什么"vapply"比"sapply"更安全?

文件说

vapply类似于sapply,但具有预先指定的返回值类型,因此使用起来更安全.

你能详细说明为什么它通常更安全,可能提供例子吗?


PS:我知道答案,我已经倾向于避免sapply.我只希望在这里有一个很好的答案,所以我可以指出我的同事.请不要"阅读手册"的答案.

r apply r-faq

81
推荐指数
3
解决办法
2万
查看次数

为什么plyr这么慢?

我想我正在使用plyr错误.有人可以告诉我这是否是"高效"的plyr代码?

require(plyr)
plyr <- function(dd) ddply(dd, .(price), summarise, ss=sum(volume)) 
Run Code Online (Sandbox Code Playgroud)

一点背景:我有一些大的聚合问题,我注意到他们每个人都花了一些时间.在尝试解决问题时,我开始对R中各种聚合过程的性能感兴趣.

我测试了一些聚合方法 - 并且发现自己整天都在等待.

当我最终得到结果时,我发现了plyr方法和其他方法之间的巨大差距 - 这让我觉得我做错了.

我运行了以下代码(我以为我在查看时会查看新的数据帧包):

require(plyr)
require(data.table)
require(dataframe)
require(rbenchmark)
require(xts)

plyr <- function(dd) ddply(dd, .(price), summarise, ss=sum(volume)) 
t.apply <- function(dd) unlist(tapply(dd$volume, dd$price, sum))
t.apply.x <- function(dd) unlist(tapply(dd[,2], dd[,1], sum))
l.apply <- function(dd) unlist(lapply(split(dd$volume, dd$price), sum))
l.apply.x <- function(dd) unlist(lapply(split(dd[,2], dd[,1]), sum))
b.y <- function(dd) unlist(by(dd$volume, dd$price, sum))
b.y.x <- function(dd) unlist(by(dd[,2], dd[,1], sum))
agg <- function(dd) aggregate(dd$volume, list(dd$price), sum)
agg.x <- function(dd) aggregate(dd[,2], list(dd[,1]), sum)
dtd <- function(dd) …
Run Code Online (Sandbox Code Playgroud)

r plyr dataframe data.table

58
推荐指数
1
解决办法
5773
查看次数

按组计算平均值

我有一个类似于这个的大型数据框:

df <- data.frame(dive=factor(sample(c("dive1","dive2"),10,replace=TRUE)),speed=runif(10))
> df
    dive      speed
1  dive1 0.80668490
2  dive1 0.53349584
3  dive2 0.07571784
4  dive2 0.39518628
5  dive1 0.84557955
6  dive1 0.69121443
7  dive1 0.38124950
8  dive2 0.22536126
9  dive1 0.04704750
10 dive2 0.93561651
Run Code Online (Sandbox Code Playgroud)

我的目标是在另一列等于某个值时平均一列的值,并对所有值重复此值.即在上面的示例中,我想为列speed的每个唯一值返回列的平均值dive.所以当时dive==dive1,平均值speed是这个,依此类推dive.

r dataframe r-faq

52
推荐指数
3
解决办法
8万
查看次数

学习R.一个人从哪里开始?

我已经使用R一年多一点了,这是一次成功的冒险.但是,我经常发现,由于不知道如何找到它或它的一个例子,我无法弄清楚.

堆栈溢出,

您是否可以推荐一种学习R的途径,以便为其提供一个工具集来解决统计问题?

在互联网上,r项目网站和邮件列表之间有丰富的知识,但它似乎"无处不在",而且当你真正寻找它时无处可去.

例如,当我第一次开始使用R时,我经历了"Intro to R".然后我读了语言定义(显然没有沉没).但是每当我在Stackoverflow上问一个问题时,我都会遇到一些新的badass函数,它可以解决我在短期内遇到的所有问题.我的问题是,您是如何知道这些功能首先存在的?如何找到它们?据推测,你读过一些东西或找到一些资源,使你的学习成为曲线的指数部分.它以前如何?

显然,R作为统计工具的功能很广泛.出于我自己的目的,我主要从事经济或财务数据.因此,考虑到这一点的答案将是最有帮助的.

r

51
推荐指数
6
解决办法
6916
查看次数

grepl:在不包含模式的字符串中搜索

似乎虽然grep有一个反转参数,grepl但没有.

我想使用2个过滤器进行子集化

data$ID[grepl("xyx", data$ID) & data$age>60]
Run Code Online (Sandbox Code Playgroud)

如何为年龄> 60而ID和不包含 "xyx"的ID进行子集化?我做的是

data$ID[abs(grepl("xyx", data.frame$ID)-1) & data$age>60]
Run Code Online (Sandbox Code Playgroud)

这看起来很有效,但看起来很糟糕且不直观.有更好的解决方案/参数吗?

谢谢

r

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

解释R tapply描述

我理解tapply()在R中做了什么.但是,我无法从文档中解析它的描述:


Apply a Function Over a "Ragged" Array

Description:

     Apply a function to each cell of a ragged array, that is to each
     (non-empty) group of values given by a unique combination of the
     levels of certain factors.

Usage:

     tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE)

当我想到tapply时,我想到了sql中的group by.您可以通过INDEX中的并行因子级别将X中的值组合在一起,并将FUN应用于这些组.我已经阅读了100次tapply的描述,仍然无法弄清楚它所说的如何映射到我如何理解tapply.也许有人可以帮我解析一下吗?

r aggregate-functions

21
推荐指数
2
解决办法
3941
查看次数

将列表中的NaN值替换为零(0)

亲爱的,我有一个问题NaN.我正在处理一个包含许多变量的大型数据集NaN.数据是这样的:

z=list(a=c(1,2,3,NaN,5,8,0,NaN),b=c(NaN,2,3,NaN,5,8,NaN,NaN))
Run Code Online (Sandbox Code Playgroud)

我用这个命令强制列表到数据框但我得到了这个:

z=as.data.frame(z)
> is.list(z)
[1] TRUE

> is.data.frame(z)
[1] TRUE
> replace(z,is.nan(z),0) 
Error en is.nan(z) : default method not implemented for type 'list'
Run Code Online (Sandbox Code Playgroud)

我强迫z到数据框但是这还不够,也许NaN在列表中有一个表单需要更改.谢谢你的帮助.这个数据只是我原始数据有36000个观察值和40个变量的例子.

r nan

13
推荐指数
2
解决办法
3万
查看次数

R中的地理编码批处理地址使用open mapquestapi

目标:使用R,通过open.mapquestapi获取地址向量的纬度和经度数据

出发点:由于geocodeggmap一天开始限制为2500个查询,我需要找到一种不同的方式(我的data.frame由9M条目组成).数据科学工具包不是一种选择,因为我的大多数地址都在英国/美国之外.我在http://rpubs.com/jvoorheis/Micro_Group_Rpres上使用open.mapquestapi 找到了这个优秀的片段.

geocode_attempt <- function(address) {
    URL2 = paste("http://open.mapquestapi.com/geocoding/v1/address?key=", "Fmjtd%7Cluub2huanl%2C20%3Do5-9uzwdz", 
        "&location=", address, "&outFormat='json'", "boundingBox=24,-85,50,-125", 
        sep = "")
    # print(URL2)
    URL2 <- gsub(" ", "+", URL2)
    x = getURL(URL2)
    x1 <- fromJSON(x)
    if (length(x1$results[[1]]$locations) == 0) {
        return(NA)
    } else {
        return(c(x1$results[[1]]$locations[[1]]$displayLatLng$lat, x1$results[[1]]$locations[[1]]$displayLatLng$lng))
    }
}
geocode_attempt("1241 Kincaid St, Eugene,OR")
Run Code Online (Sandbox Code Playgroud)

我们需要这些库:

library(RCurl)
library(rjson)
library(dplyr)
Run Code Online (Sandbox Code Playgroud)

让我们创建一个包含5个地址的模拟data.frame.

id <- c(seq(1:5))
street <- c("Alexanderplatz 10", "Friedrichstr 102", "Hauptstr 42", "Bruesseler Platz 2", "Aachener Str 324")
postcode …
Run Code Online (Sandbox Code Playgroud)

google-maps geocoding r openstreetmap

11
推荐指数
2
解决办法
3059
查看次数