R语言 逐行创建数据框架
在这篇文章中,我们将讨论如何在R编程语言中逐行创建数据框架。
方法1:使用for循环和索引方法
R语言中的空数据帧可以使用R语言中的data.frame()方法来创建。为了更加清晰,可以在声明中定义列的数据类型。数据框的每一行都是一个由属于不同列的值组成的向量。然后,数据框中的第 i行可以被分配给这个向量。
语法
dataframe[ i, ] <- vec
这些行被附加到数据框的末尾。行的添加也可以在for循环中完成,循环的迭代次数与要添加的行数相等。 添加的向量的长度应该与数据框中的列数相当。
例子
# declaring an empty data frame
data_frame = data.frame(
col1 = numeric(), col2 = character(),stringsAsFactors = FALSE)
print ("Original dataframe")
print (data_frame)
# appending rows to the data frame
for(i in 1:3) {
# creating a vector to append to
# data frame
vec <- c(i+1, LETTERS[i])
# assigning this vector to ith row
data_frame[i, ] <- vec
}
print ("Modified dataframe")
print (data_frame)
输出
[1] "Original dataframe"
[1] col1 col2
<0 rows> (or 0-length row.names)
[1] "Modified dataframe"
col1 col2
1 2 A
2 3 B
3 4 C
方法2:使用手动插入
空数据框中的行也可以使用行索引参考来插入。每次迭代后,一个新的行被追加到数据框中。对原始数据框进行修改。
例子
# declaring an empty data frame
data_frame = data.frame(col1 = numeric(),
col2 = character(),
stringsAsFactors = FALSE)
print ("Original dataframe")
print (data_frame)
# appending rows to the data frame
data_frame[1,] <- c(1,"firstrow")
print ("Dataframe : Iteration 1")
print (data_frame)
# appending rows to the data frame
data_frame[2,] <- c(2,"secondrow")
print ("Dataframe : Iteration 2")
print (data_frame)
data_frame[3,] <- c(3,"thirdrow")
print ("Dataframe : Iteration 3")
print (data_frame)
输出
[1] "Original dataframe"
[1] col1 col2
<0 rows> (or 0-length row.names)
[1] "Dataframe : Iteration 1"
col1 col2
1 1 firstrow
[1] "Dataframe : Iteration 2"
col1 col2
1 1 firstrow
2 2 secondrow
[1] "Dataframe : Iteration 3"
col1 col2
1 1 firstrow
2 2 secondrow
3 3 thirdrow
数据框的当前行数可以通过nrow(dataframe)方法获取。一个单独的行可以在nrow(df)+1索引处被添加到数据框中。
语法
df[ nrow(df)+1, ] <- vec
例子
# declaring an empty data frame
data_frame = data.frame(col1 = c(2:3),
col2 = letters[1:2],
stringsAsFactors = FALSE)
print ("Original dataframe")
print (data_frame)
# appending rows at the end
vec <- c(8,"n")
data_frame[nrow(data_frame)+1,] <- vec
print ("Modified dataframe")
print (data_frame)
输出
[1] "Original dataframe"
col1 col2
1 2 a
2 3 b
[1] "Modified dataframe"
col1 col2
1 2 a
2 3 b
3 8 n
方法3:使用rbind()方法
rbind()方法用于将向量或数据框架对象绑定在一起,形成一个更大的对象。最初,我们可以创建一个空的数据框,然后用一个向量定义一个新的行,用rbind()方法将声明的行绑定到数据框中。新的行被附加在最后。该行的数据类型应该与原始数据框的数据类型兼容。这可以包含在一个循环中,以便在每个循环迭代期间绑定行。
语法
rbind(df , vec)
例子
# declaring an empty data frame
data_frame = data.frame(col1 = numeric(),
col2 = character(),
stringsAsFactors = FALSE)
print ("Original dataframe")
print (data_frame)
# appending rows at the end
vec <- c(8,"n")
# binding row at the end of the data frame
data_frame <- rbind(data_frame,vec,stringsAsFactors = FALSE)
print ("Modified dataframe")
print (data_frame)
输出
[1] "Original dataframe"
[1] col1 col2
<0 rows> (or 0-length row.names)
[1] "Modified dataframe"
X.8. X.n.
1 8 n
数据框也可以逐行创建,在for循环中对数据框重复进行rbind()操作,迭代次数与要插入的行数相等。
例子
# declaring an empty data frame
data_frame = data.frame(col1 = numeric(),
col2 = character(),
stringsAsFactors = FALSE)
print ("Original dataframe")
print (data_frame)
# appending rows at the end
for(i in 1:3) {
# creating a vector to append
# to data frame
vec <- c(i, LETTERS[i])
# assigning this vector to ith row
data_frame <- rbind(data_frame,vec,stringsAsFactors=FALSE)
}
print ("Modified dataframe")
print (data_frame)
输出
[1] "Original dataframe"
[1] col1 col2
<0 rows> (or 0-length row.names)
[1] "Modified dataframe"
X.1. X.A.
1 1 A
2 2 B
3 3 C