将行透视到单个列中,并使用R中的列名对它们进行索引
我需要将行值转换为一列,并根据列名和行号创建索引。我在R中检查了很多pivot解决方案,但似乎没有一个能够简单地在不创建方法、总和等的情况下进行转换。如果您能提供帮助,我将不胜感激将行透视到单个列中,并使用R中的列名对它们进行索引,r,R,我需要将行值转换为一列,并根据列名和行号创建索引。我在R中检查了很多pivot解决方案,但似乎没有一个能够简单地在不创建方法、总和等的情况下进行转换。如果您能提供帮助,我将不胜感激 df1 <- read.table(textConnection("a1,a2,a3 23,34,4 34,44,98"), sep=",", header=TRUE) df2 <- read.table(textConnection("id,val 1_a1,23 2_a2,34 3_a3,4 4_a
df1 <- read.table(textConnection("a1,a2,a3
23,34,4
34,44,98"), sep=",", header=TRUE)
df2 <- read.table(textConnection("id,val
1_a1,23
2_a2,34
3_a3,4
4_a1,34
5_a2,44
6_a3,98"), sep=",", header=TRUE)
为此:
id val
1 1_a1 23
2 2_a2 34
3 3_a3 4
4 4_a1 34
5 5_a2 44
6 6_a3 98
非常感谢 你可以试试
m1 <- t(df1)
d1 <- data.frame(id=paste(seq_along(m1),
rownames(m1)[row(m1)], sep="_"), val=c(m1))
d1
# id val
#1 1_a1 23
#2 2_a2 34
#3 3_a3 4
#4 4_a1 34
#5 5_a2 44
#6 6_a3 98
m1你可以试试
m1 <- t(df1)
d1 <- data.frame(id=paste(seq_along(m1),
rownames(m1)[row(m1)], sep="_"), val=c(m1))
d1
# id val
#1 1_a1 23
#2 2_a2 34
#3 3_a3 4
#4 4_a1 34
#5 5_a2 44
#6 6_a3 98
m1你可以试试
m1 <- t(df1)
d1 <- data.frame(id=paste(seq_along(m1),
rownames(m1)[row(m1)], sep="_"), val=c(m1))
d1
# id val
#1 1_a1 23
#2 2_a2 34
#3 3_a3 4
#4 4_a1 34
#5 5_a2 44
#6 6_a3 98
m1你可以试试
m1 <- t(df1)
d1 <- data.frame(id=paste(seq_along(m1),
rownames(m1)[row(m1)], sep="_"), val=c(m1))
d1
# id val
#1 1_a1 23
#2 2_a2 34
#3 3_a3 4
#4 4_a1 34
#5 5_a2 44
#6 6_a3 98
m1这可以通过tidyr
包中的gather
轻松完成:
library(tidyr)
df2 <- gather(df1, id, val)
如果您也使用dplyr包,则可以通过以下方式执行此操作:
library(dplyr)
library(tidyr)
df2 <- df1 %>% gather(id, val) %>% mutate(id = paste(id, seq_len(n()), sep = "_"))
库(dplyr)
图书馆(tidyr)
df2%聚集(id,val)%>%变异(id=paste(id,seq_len(n()),sep=“”))
这可以通过tidyr
软件包中的gather
轻松完成:
library(tidyr)
df2 <- gather(df1, id, val)
如果您也使用dplyr包,则可以通过以下方式执行此操作:
library(dplyr)
library(tidyr)
df2 <- df1 %>% gather(id, val) %>% mutate(id = paste(id, seq_len(n()), sep = "_"))
库(dplyr)
图书馆(tidyr)
df2%聚集(id,val)%>%变异(id=paste(id,seq_len(n()),sep=“”))
这可以通过tidyr
软件包中的gather
轻松完成:
library(tidyr)
df2 <- gather(df1, id, val)
如果您也使用dplyr包,则可以通过以下方式执行此操作:
library(dplyr)
library(tidyr)
df2 <- df1 %>% gather(id, val) %>% mutate(id = paste(id, seq_len(n()), sep = "_"))
库(dplyr)
图书馆(tidyr)
df2%聚集(id,val)%>%变异(id=paste(id,seq_len(n()),sep=“”))
这可以通过tidyr
软件包中的gather
轻松完成:
library(tidyr)
df2 <- gather(df1, id, val)
如果您也使用dplyr包,则可以通过以下方式执行此操作:
library(dplyr)
library(tidyr)
df2 <- df1 %>% gather(id, val) %>% mutate(id = paste(id, seq_len(n()), sep = "_"))
库(dplyr)
图书馆(tidyr)
df2%聚集(id,val)%>%变异(id=paste(id,seq_len(n()),sep=“”))
require(dplyr)#用于mutate()
需要(三天)#用于收集()
d%
变异(id=粘贴(行号(),“id”,sep=“”))
require(dplyr)#用于mutate()
需要(三天)#用于收集()
d%
变异(id=粘贴(行号(),“id”,sep=“”))
require(dplyr)#用于mutate()
需要(三天)#用于收集()
d%
变异(id=粘贴(行号(),“id”,sep=“”))
require(dplyr)#用于mutate()
需要(三天)#用于收集()
d%
变异(id=粘贴(行号(),“id”,sep=“”))
我猜您没有创建id
column@akrun什么意思?即使在我最初的修订版中,我也包括了我所指的df2$id行gather(df1,id,val)#度量中的错误。属性[[1]]:下标超出范围
@akrun我无法重现该错误。您有什么版本的tidyr
?我有tidyr\u 0.1.0.9000
同一版本tidyr\u 0.1.0.9000
我想你没有创建id
column@akrun什么意思?即使在我最初的修订版中,我也包括了我所指的df2$id行gather(df1,id,val)#度量中的错误。属性[[1]]:下标超出范围
@akrun我无法重现该错误。您有什么版本的tidyr
?我有tidyr\u 0.1.0.9000
同一版本tidyr\u 0.1.0.9000
我想你没有创建id
column@akrun什么意思?即使在我最初的修订版中,我也包括了我所指的df2$id行gather(df1,id,val)#度量中的错误。属性[[1]]:下标超出范围
@akrun我无法重现该错误。您有什么版本的tidyr
?我有tidyr\u 0.1.0.9000
同一版本tidyr\u 0.1.0.9000
我想你没有创建id
column@akrun什么意思?即使在我最初的修订版中,我也包括了我所指的df2$id行gather(df1,id,val)#度量中的错误。属性[[1]]:下标超出范围
@akrun我无法重现该错误。您有什么版本的tidyr
?我有tidyr\u 0.1.0.9000
同一版本tidyr\u 0.1.0.9000
谢谢,我欣赏一个纯基础解决方案谢谢,我欣赏一个纯基础解决方案谢谢,我欣赏一个纯基础解决方案谢谢,我欣赏一个纯基础解决方案你为什么想要这样的“id”栏?你总是假定按行未列出吗?我需要一种方法来跟踪它们以前驻留的列,但它对于数据透视数据集中的新列是唯一的。。。如果这是合理的,但未列出的顺序并不是特别重要?我提出这个问题的部分原因是,当R可以处理多个列作为分组变量时,不让值像这样粘贴在一起对我来说更有意义。你为什么希望“id”列像这样?你总是假定按行未列出吗?我需要一种方法来跟踪它们以前驻留的列,但它对于数据透视数据集中的新列是唯一的。。。如果这是合理的,但未列出的顺序并不是特别重要?我提出这个问题的部分原因是,当R可以处理多个列作为分组变量时,不让值像这样粘贴在一起对我来说更有意义。你为什么希望“id”列像这样?你总是假定按行未列出吗?我需要一种方法来跟踪它们以前驻留的列,但它对于数据透视数据集中的新列是唯一的。。。如果这是合理的,但未列出的顺序并不是特别重要?我提出这个问题的部分原因是,当R可以处理多个列作为分组变量时,不让值像这样粘贴在一起对我来说更有意义。你为什么希望“id”列像这样?你总是假定按行未列出吗?我需要一种方法来跟踪它们以前驻留的列,但它对于数据透视数据集中的新列是唯一的。。。如果这是合理的,但未列出的顺序并不是特别重要?我提出这一问题的部分原因是,当R可以处理多个列作为分组变量时,不让值像这样粘贴在一起对我来说通常更有意义。