R-在一个数据帧中将多个列组合在一起,同时保持连接的数据

R-在一个数据帧中将多个列组合在一起,同时保持连接的数据,r,dataframe,multiple-columns,reshape,calculated-columns,R,Dataframe,Multiple Columns,Reshape,Calculated Columns,所以我一直在寻找这个问题的答案,但是我找不到一个能满足我的需求或者我对R的理解的答案 首先,这里有一些代码,让您了解我的数据集是什么样子的 df <- data.frame("Year" = 1991:2000, "Subdiv" = 24:28, H1 = c(31.2,34,70.2,19.8,433.7,126.34,178.39,30.4,56.9,818.3), H2 = c(53.9,121.5,16.9,11.9,114.6,129.9,221.1,

所以我一直在寻找这个问题的答案,但是我找不到一个能满足我的需求或者我对R的理解的答案

首先,这里有一些代码,让您了解我的数据集是什么样子的

df <- data.frame("Year" = 1991:2000, "Subdiv" = 24:28, H1 = c(31.2,34,70.2,19.8,433.7,126.34,178.39,30.4,56.9,818.3),
             H2 = c(53.9,121.5,16.9,11.9,114.6,129.9,221.1,433.4,319.2,52.6))             
> df
   Year Subdiv     H1    H2
1  1991     24  31.20  53.9
2  1992     25  34.00 121.5
3  1993     26  70.20  16.9
4  1994     27  19.80  11.9
5  1995     28 433.70 114.6
6  1996     24 126.34 129.9
7  1997     25 178.39 221.1
8  1998     26  30.40 433.4
9  1999     27  56.90 319.2
10 2000     28 818.30  52.6
注意:是的,我删除了一些行,但只是为了不挤满屏幕

我希望这是足够的信息,使它可以理解我需要什么和有人帮助

因为我有更多种类的鱼,如果有人想包括一个描述添加一个物种栏,这将是有益的。 以下是相同数据的代码,仅为sprat(Sn)复制:


df我认为基本的
data.frame
函数将完全满足您的需要。尝试以下方法:

data.frame(df$Year,df$Subdiv,Abun=c(df$H1,df$H2),
  Age=rep(c(1,2),each=nrow(df)))
因此,我将要在丰度列中连接的值连接起来,并创建一个新列,该列只是为每行复制的年龄。可以轻松创建类似的“种类”列


希望有帮助

我认为基本的
data.frame
函数将完全满足您的需要。尝试以下方法:

data.frame(df$Year,df$Subdiv,Abun=c(df$H1,df$H2),
  Age=rep(c(1,2),each=nrow(df)))
因此,我将要在丰度列中连接的值连接起来,并创建一个新列,该列只是为每行复制的年龄。可以轻松创建类似的“种类”列


希望有帮助

这是一个典型的重塑然后补充任务,因此您可以:

1) 使用重塑2“融化”您的数据

library("reshape2")
df.m<-melt(df,id.vars=c("Year","Subdiv"))
库(“重塑2”)

df.m这是一个典型的重塑然后补充任务,因此您可以:

1) 使用重塑2“融化”您的数据

library("reshape2")
df.m<-melt(df,id.vars=c("Year","Subdiv"))
库(“重塑2”)

df.mIt值得注意的是,如果你有很多鱼和很多年龄,用这种方法可能很难管理,但在一个已知的小样本上,这是一个非常可行的解决方案。值得注意的是,如果你有很多鱼和很多年龄,用这种方法可能很难管理,但在一个已知的小样本上,这是一个非常可行的解决方案!这样就解决了问题。我一定要结账。再次感谢!谢谢你,伙计!这样就解决了问题。我一定要结账。再次感谢!关于您的标签,不是与一起使用的正确标签。请改用。关于您的标签,不是与一起使用的正确标签。改用。
library("stringr")
df.m$Fish<-str_extract(df.m$variable,"[A-Z]")
df.m$Age<-str_extract(df.m$variable,"[0-9]")