R 将两行合并在一起,同时维护初始数据

R 将两行合并在一起,同时维护初始数据,r,dataframe,R,Dataframe,我正在努力将两个数据帧组合在一起——但是,两个数据帧都只包含一列,长度不同 我的第一个数据帧名为“FamilyID”,看起来是这样的: FamilyID <- structure(list(Family_No = c(1034, 1056, 1064, 1091, 1101, 1101, 11, 113, 113, 1133, 1133, 115, 116)), row.names = c(NA, -13L), class = c("tbl_df", "t

我正在努力将两个数据帧组合在一起——但是,两个数据帧都只包含一列,长度不同

我的第一个数据帧名为“FamilyID”,看起来是这样的:

FamilyID <- structure(list(Family_No = c(1034, 1056, 1064, 1091, 1101, 1101, 
11, 113, 113, 1133, 1133, 115, 116)), row.names = c(NA, -13L), class = c("tbl_df", 
"tbl", "data.frame"))
FID <- structure(list(Family_No = c(1034, 1034, 1056, 1056, 1064, 1064, 
1091, 1091, 1101, 1101, 11, 11, 113, 113)), row.names = c(NA, 
-14L), class = c("tbl_df", "tbl", "data.frame"))

FamilyID您可以使用以下代码行:

new_df <- data.frame(Family_No = cbind(c(FamilyID$Family_No, FID$Family_No)))

还可以将数据集(单列)放置在
列表中
取消列表中
以创建
向量
,然后用
数据换行。frame

data.frame(Family_No = unlist(list(FamilyID, FID)))

使用
rbind
。如果colnames不同,请将其与
setNames
一起使用,这不是一个简单的
rbind
<代码>rbind(家庭ID,FID)
这起作用了!我的输出和你的一样。我现在有没有办法重新排列数据,使匹配的值彼此对齐?我最终需要我的数据(这一列)像这样:1034 1034 1034 1056 1056 1064 1064 1064 1091 1091 1091 1101 1101等。您可以使用
排序(new_df[,1],discreating=TRUE)
。这将按降序对列进行排序。
> new_df
   Family_No
1       1034
2       1056
3       1064
4       1091
5       1101
6       1101
7         11
8        113
9        113
10      1133
11      1133
12       115
13       116
14      1034
15      1034
16      1056
17      1056
18      1064
19      1064
20      1091
21      1091
22      1101
23      1101
24        11
25        11
26       113
27       113
data.frame(Family_No = unlist(list(FamilyID, FID)))