Tag: dataframe

结合两个不同长度的dataframe

我有两个dataframe。 首先是只有一列和10行。 第二个是3列50行。 当我试图通过使用cbind来结合这个,它会给出这个错误: data.frame中的错误(…,check.names = FALSE): 任何人都可以build议另外一个功 PS我也试过这个使用列表,但它给出了相同的错误。 由3列组成的数据框应该是CSV文件中的前3列,而使用write.table函数写入时,具有1列的数据框应该是该文件中的第4列。 前3列有50行,第4列应占前10行。

使用每行的多个参数在dataframe的每一行上调用类似apply的函数

我有一个数据框与多个列。 对于数据框中的每一行,我想调用该行上的函数,并且该函数的input使用该行中的多个列。 例如,假设我有这个数据,而且这个testFunc接受两个参数: > df <- data.frame(x=c(1,2), y=c(3,4), z=c(5,6)) > df xyz 1 1 3 5 2 2 4 6 > testFunc <- function(a, b) a + b 假设我想将这个testFunc应用到列x和z。 所以,对于第1行我想要1 + 5,对于第2行我想要2 + 6.有没有办法做到这一点,而不写一个for循环,也许与应用function家族? 我试过这个: > df[,c('x','z')] xz 1 1 5 2 2 6 > lapply(df[,c('x','z')], testFunc) Error in a + b : 'b' is […]

使用:=在data.table中,按组分组多个列

使用data.table分配给多个列的最佳方式是什么? 例如: f <- function(x) {c("hi", "hello")} x <- data.table(id = 1:10) 我想要做这样的事情(当然这个语法是不正确的): x[ , (col1, col2) := f(), by = "id] 并扩大,我可能有很多名称在variables列(如column_names ),我想这样做: x[ , col_names := another_f(), by = "id", with = FALSE] 什么是正确的方式来做这样的事情?

更改数据框的列名称

我有一个名为“newprice”(见下文)的数据框,我想改变我的程序中的列名。 > newprice Chang. Chang. Chang. 1 100 36 136 2 120 -33 87 3 150 14 164 其实这就是在做什么: names(newprice)[1]<-paste("premium") names(newprice)[2]<-paste("change") names(newprice)[3]<-paste("newprice") 我没有把它放在一个循环中,因为我希望每个列的名称都不一样。 当我把我的程序粘贴到R控制台时,这是它给我的输出: > names(newprice)[1]<-paste(“premium”) Error: unexpected input in "names(newprice)[1]<-paste(“" > names(newprice)[2]<-paste(“change”) Error: unexpected input in "names(newprice)[2]<-paste(“" > names(newprice)[3]<-paste(“newpremium”) Error: unexpected input in "names(newprice)[3]<-paste(“" 我已经同样尝试使用c()函数,例如c("premium") ,而不是paste()函数,但无济于事。 有人能帮我弄清楚吗?

从R中的data.frame中移除整个列

有谁知道如何从R中的data.frame中删除整个列? 例如,如果我给这个data.frame: > head(data) chr genome region 1 chr1 hg19_refGene CDS 2 chr1 hg19_refGene exon 3 chr1 hg19_refGene CDS 4 chr1 hg19_refGene exon 5 chr1 hg19_refGene CDS 6 chr1 hg19_refGene exon 我想删除第二列。

从数据框中提取特定的列

我有一个R数据框6列,我想创build一个新的数据框,只有三个列。 假设我的数据框是df ,并且我想提取列A , B和E ,这是我能弄清楚的唯一命令: data.frame(df$A,df$B,df$E) 有没有更紧凑的方式来做到这一点?

只保留每个因素水平的最小值

我遇到了一些让我感到困扰的问题…希望这里的任何人都能帮助我。 我得到了以下数据框架 f <- c('a','a','b','b','b','c','d','d','d','d') v1 <- c(1.3,10,2,10,10,1.1,10,3.1,10,10) v2 <- c(1:10) df <- data.frame(f,v1,v2) f是一个因素; v1和v2是值。 对于f的每个级别,我只想保留一行:在这个因子级别中具有最低v1值的那一行。 f v1 v2 a 1.3 1 b 2 3 c 1.1 6 d 3.1 8 我用聚合,ddply,tapply …尝试了各种各样的东西,但似乎没有任何工作。 对于任何build议,我会非常感激。

计算R中每个matrix的平均值

我在R工作室工作。 我需要计算数据框的每列的平均值。 cluster1 // 5 by 4 data frame mean(cluster1) // 我有 : Warning message: In mean.default(cluster1) : argument is not numeric or logical: returning NA 但我可以使用 mean(cluster1[[1]]) 得到第一列的平均值。 如何获得所有列的手段? 任何帮助,将不胜感激。

在数据框中按组计数唯一/不同的值

假设我有以下数据框: > myvec name order_no 1 Amy 12 2 Jack 14 3 Jack 16 4 Dave 11 5 Amy 12 6 Jack 16 7 Tom 19 8 Larry 22 9 Tom 19 10 Dave 11 11 Jack 17 12 Tom 20 13 Amy 23 14 Jack 16 我想计算每个name的不同order_no值的数量。 它应该产生以下结果: name number_of_distinct_orders Amy 2 Jack 3 […]

如何为列中的每组相同值分配唯一的ID号

我有一个数据框的列数。 我想创build一个名为“id”的新列,它给“sample”列中的每组相同的值赋予一个唯一的id号。 示例数据: # dput(df) df <- structure(list(index = 1:30, val = c(14L, 22L, 1L, 25L, 3L, 34L, 35L, 36L, 24L, 35L, 33L, 31L, 30L, 30L, 29L, 28L, 26L, 12L, 41L, 36L, 32L, 37L, 56L, 34L, 23L, 24L, 28L, 22L, 10L, 19L), sample = c(5L, 6L, 6L, 7L, 7L, 7L, 8L, 9L, 10L, 11L, 11L, […]