Reputation: 1150
Sorry about this one but I can't find an easy solution to this.
I have a data frame:
>bla<-c(1)
>df<-data.frame(bla)
>df
bla
1 1
I want to append values to the bottom of the column (hence not create a new one, as explained here). For instance, get:
bla
1 1
2 2
3 3
4 4
5 5
I tried:
df[2,1]<-c(2,3,4,5)
df[,1]<-c(2,3,4,5)
but I get:
Error in `[<-.data.frame`(`*tmp*`, 2, 1, value = c(2, 3, 4, 5)) :
replacement has 4 rows, data has 1
Maybe dataframes are not appropriate and I should try with matrixes instead? Any suggestion would be much appreciated! :)
Upvotes: 4
Views: 55728
Reputation: 2539
Another option if you know the final dimensions in advance is just to create an empty dataframe of the given size and then append rowwise:
blah <- data.frame(matrix(NA, nrow=N, ncol=M))
for (i in 1:N) {
yourResults <- yourFunction()
blah[i,] <- yourResults
}
Upvotes: 1
Reputation: 8402
You need to convert c(2,3,4,5)
to a data frame then use rbind to join the rows as @Ananda Mahto did in his comment
df <- rbind(df, data.frame(bla = c(2,3,4,5)))
Where 'bla' is the name of the column in df
Upvotes: 5