我如何将一行数据帧转移到第一行?

时间:2017-06-05 13:20:06

标签: r list dataframe transfer shift

我如何将一个原始数据帧转换为第一个原始数据,我希望id raw是第一个原始数据。在R。

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

5.1         3.5          1.4         0.2         setosa
4.9         3.0          1.4         0.2         setosa
4.7         3.2          1.3         0.2         setosa
4.6         3.1          1.5         0.2         setosa
5.0         3.6          1.4         0.2         setosa
id           A            B           C            D

2 个答案:

答案 0 :(得分:1)

我们可以使用grepl根据' id'来创建逻辑向量。在&Sepay.Length'中,然后通过从原始数据集中删除行时提取该行来设置数据集的列名

i1 <- grepl("id", df1$Sepal.Length)
setNames(df1[!i1,], unlist(df1[i1,]))
#   id   A   B   C      D
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa

答案 1 :(得分:0)

您可以执行以下操作(假设您的ID是第N行):

df <- iris # Example of data.frame
myIdrow <- 5 # as an example id row
df2 <- df[c(myIdrow, (1:nrow(df))[-myIdrow]), ]

虽然我建议将ID作为列名。