如何在R中重新编号无序的行?
当我们使用内置或导入的数据集创建样本时,所选行的编号与原始数据集中的编号相同,因此编号变得无序。要将此无序编号更改为一个序列(例如从1到样本中总行数),我们可以使用1:nrow(“sample_object_name”)。
考虑下面的数据框:
示例
set.seed(999) x<-rnorm(20,5,1) y<-rnorm(20,2,0.80) z<-rnorm(20,3,0.95) df1<-data.frame(x,y,z) df1
输出
x y z 1 4.718260 1.0171494 2.538645 2 3.687440 2.5144355 3.008073 3 5.795184 1.7121897 1.781992 4 5.270070 2.2352285 1.944000 5 4.722694 1.0997852 3.285632 6 4.433976 2.5138125 3.262655 7 3.121342 1.1146099 1.051666 8 3.733209 1.2921277 3.013481 9 4.032250 0.7567239 3.553153 10 3.878991 1.8986568 2.967010 11 6.325464 3.9061313 2.889169 12 5.133977 2.4810209 2.387267 13 5.938749 2.1434890 4.657191 14 5.172538 2.8644252 3.347790 15 5.957650 1.8025503 2.936531 16 3.637314 0.3090104 3.268482 17 5.068335 1.7035780 3.539310 18 5.100658 2.4182942 1.784745 19 5.901345 2.4142444 3.413600 20 2.925643 0.8779913 2.462774
获取数据框df1的样本:
示例
Sample1<-df1[sample(nrow(df1),10),] Sample1
输出
x y z 14 5.172538 2.8644252 3.347790 16 3.637314 0.3090104 3.268482 12 5.133977 2.4810209 2.387267 10 3.878991 1.8986568 2.967010 11 6.325464 3.9061313 2.889169 20 2.925643 0.8779913 2.462774 15 5.957650 1.8025503 2.936531 19 5.901345 2.4142444 3.413600 13 5.938749 2.1434890 4.657191 17 5.068335 1.7035780 3.539310
将行号设置为从1到Sample1中的总行数:
示例
row.names(Sample1)<-1:nrow(Sample1) Sample1
输出
x y z 1 5.172538 2.8644252 3.347790 2 3.637314 0.3090104 3.268482 3 5.133977 2.4810209 2.387267 4 3.878991 1.8986568 2.967010 5 6.325464 3.9061313 2.889169 6 2.925643 0.8779913 2.462774 7 5.957650 1.8025503 2.936531 8 5.901345 2.4142444 3.413600 9 5.938749 2.1434890 4.657191 10 5.068335 1.7035780 3.539310
让我们看看另一个例子:
示例
a<-rpois(20,5) b<-rpois(20,2) c<-rpois(20,10) df2<-data.frame(a,b,c) df2
输出
a b c 1 4 3 5 2 5 1 14 3 4 4 9 4 6 3 6 5 5 0 8 6 3 3 9 7 4 3 6 8 2 0 7 9 5 2 7 10 8 2 11 11 7 4 9 12 4 3 11 13 6 2 7 14 5 5 12 15 7 2 11 16 5 1 12 17 7 3 5 18 1 0 15 19 6 1 10 20 3 1 6
获取df2的样本:
示例
Sample2<-df2[sample(nrow(df2),12),] Sample2
输出
a b c 8 2 1 10 10 6 1 11 14 7 0 7 2 12 2 6 18 7 0 6 9 5 1 4 13 1 1 11 6 3 2 6 16 4 3 7 1 5 3 10 15 6 3 3 17 4 2 6
将行号设置为从1到Sample2中的总行数:
示例
row.names(Sample2)<-1:nrow(Sample2) Sample2
输出
a b c 1 2 1 10 2 6 1 11 3 7 0 7 4 12 2 6 5 7 0 6 6 5 1 4 7 1 1 11 8 3 2 6 9 4 3 7 10 5 3 10 11 6 3 3 12 4 2 6
广告