Tag: r

在数据框中对组内的行进行编号

使用类似这样的数据框: set.seed(100) df <- data.frame(cat = c(rep("aaa", 5), rep("bbb", 5), rep("ccc", 5)), val = runif(15)) df <- df[order(df$cat, df$val), ] df cat val 1 aaa 0.05638315 2 aaa 0.25767250 3 aaa 0.30776611 4 aaa 0.46854928 5 aaa 0.55232243 6 bbb 0.17026205 7 bbb 0.37032054 8 bbb 0.48377074 9 bbb 0.54655860 10 bbb 0.81240262 11 ccc […]

加快R中的循环操作

我在R中有一个很大的性能问题。我写了一个迭代data.frame对象的函数。 它只是添加一个新的列data.frame和积累的东西。 (操作简单)。 data.frame大约有850K行。 我的电脑还在工作(现在大约10小时),我不知道运行时间。 dayloop2 <- function(temp){ for (i in 1:nrow(temp)){ temp[i,10] <- i if (i > 1) { if ((temp[i,6] == temp[i-1,6]) & (temp[i,3] == temp[i-1,3])) { temp[i,10] <- temp[i,9] + temp[i-1,10] } else { temp[i,10] <- temp[i,9] } } else { temp[i,10] <- temp[i,9] } } names(temp)[names(temp) == "V10"] <- "Kumm." return(temp) […]

通过唯一标识符聚合并将相关值连接成一个string

我有一个需要,我想可以通过aggregate或reshape来满足,但我不能完全弄清楚。 我有一个名称( brand ),并附有身份证号码( id )的名单。 这个数据的格式很长,所以名字可以有多个ID。 我想通过名称( brand )去重复,并将多个可能的id连接成由注释分隔的string。 例如: brand id RadioShack 2308 Rag & Bone 4466 Ragu 1830 Ragu 4518 Ralph Lauren 1638 Ralph Lauren 2719 Ralph Lauren 2720 Ralph Lauren 2721 Ralph Lauren 2722 应该成为: RadioShack 2308 Rag & Bone 4466 Ragu 1830,4518 Ralph Lauren 1638,2719,2720,2721,2722 我将如何做到这一点?

按data.table分组

假设我有一个包含一些棒球选手的数据表: library(plyr) library(data.table) bdt <- as.data.table(baseball) 对于每个玩家(由ID给出),我想find对应他们玩最多游戏年份的行。 这在plyr中很简单: ddply(baseball, "id", subset, g == max(g)) 什么是data.table的等效代码? 我试过了: setkey(bdt, "id") bdt[g == max(g)] # only one row bdt[g == max(g), by = id] # Error: 'by' or 'keyby' is supplied but not j bdt[, .SD[g == max(g)]] # only one row 这工作: bdt[, .SD[g == max(g)], by […]

将多个.csv文件导入到R中

假设我们有一个包含多个data.csv文件的文件夹,每个文件包含相同数量的variables,但每个文件都来自不同的时间。 R中有没有办法同时导入它们,而不是单独导入它们? 我的问题是,我有大约2000个数据文件导入,不得不单独导入他们只是通过使用代码: read.delim(file="filename", header=TRUE, sep="\t") 效率不高。

确切地了解data.table何时是另一个data.table的引用(vs另一个副本)

我在理解data.table的传递引用属性时遇到了一些麻烦。 一些操作似乎“打破”了参考,我想要明白到底发生了什么事情。 从另一个data.table创build一个data.table (通过<- ,然后更新新的表:= ,原来的表也被改变,这是预期的,按照: ?data.table::copy和stackoverflow:通过引用传入数据表中的操作符包 这是一个例子: library(data.table) DT <- data.table(a=c(1,2), b=c(11,12)) print(DT) # ab # [1,] 1 11 # [2,] 2 12 newDT <- DT # reference, not copy newDT[1, a := 100] # modify new DT print(DT) # DT is modified too. # ab # [1,] 100 11 # [2,] 2 12 […]

将多组测量列(宽格式)重新整理为单列(长格式)

我有一个宽格式的dataframe,在不同的date范围内进行重复测量。 在我的例子中,有三个不同的时期,都有相应的价值。 例如,在从“DateRange1Start”到“DateRange1End”期间测量的第一个度量('Value1'): ID DateRange1Start DateRange1End Value1 DateRange2Start DateRange2End Value2 DateRange3Start DateRange3End Value3 1 1/1/90 3/1/90 4.4 4/5/91 6/7/91 6.2 5/5/95 6/6/96 3.3 我正在寻找重塑的数据到一个长的格式,使DateRangeXStart和DateRangeXEnd列分组。 因此,原表中的1行在新表中成为3行: ID DateRangeStart DateRangeEnd Value 1 1/1/90 3/1/90 4.4 1 4/5/91 6/7/91 6.2 1 5/5/95 6/6/96 3.3 我知道必须有一种方法来处理reshape2 / melt / tidyr / tidyr ,但我似乎无法弄清楚如何以这种特殊的方式将多组度量variables映射到一组值列中。

使用R添加前导零

我有一组数据,看起来像这样: 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 anim sex wt anim2 1 […]

在data.frame中删除具有NAs(缺失值)的行

我想删除这个数据框中所有列中包含NA的行。 以下是我的示例数据框。 gene hsap mmul mmus rnor cfam 1 ENSG00000208234 0 NA NA NA NA 2 ENSG00000199674 0 2 2 2 2 3 ENSG00000221622 0 NA NA NA NA 4 ENSG00000207604 0 NA NA 1 2 5 ENSG00000207431 0 NA NA NA NA 6 ENSG00000221312 0 1 2 3 2 基本上,我想要得到如下的数据框。 gene hsap mmul mmus […]

错误:无法findfunction…在R

我使用R和尝试some.function但我得到这个错误消息: Error: could not find function `some.function` 这个问题很常见。 当你得到这个error: could not find function在R中error: could not find function ,你怎么解决它? 预先感谢您的帮助。 这是一个常见问题,所以请尽可能完整。 答案是一个社区的答案,所以随时编辑,如果你觉得缺less一些东西。 这个问题在meta上被批准: https : //meta.stackexchange.com/questions/101892/community-wiki-with-common-error-messages-allowed