rbind字符向量到数据帧 >test

rbind字符向量到数据帧 >test,r,dataframe,R,Dataframe,您可以将信息存储在字符矩阵中。当然,您可以使用as.data.frame和参数stringsAsFactors=FALSE将此矩阵转换为数据帧 > test <- data.frame() > test<-rbind(test,c("hi","i","am","bob")) > test<-rbind(test,c("hi","i","am","alice")) Warning message: In `[<-.factor`(`*tmp*`, ri,

您可以将信息存储在字符矩阵中。当然,您可以使用
as.data.frame
和参数
stringsAsFactors=FALSE
将此矩阵转换为数据帧

> test <- data.frame()
> test<-rbind(test,c("hi","i","am","bob"))
> test<-rbind(test,c("hi","i","am","alice"))
Warning message:
In `[<-.factor`(`*tmp*`, ri, value = "alice") :
  invalid factor level, NAs generated
>测试
[,1] [,2] [,3] [,4]   
[1,]嗨,我是鲍勃
[2,]嗨,我是爱丽丝
>testDF testDF testDF
V1 V2 V3 V4
嗨,我是鲍勃
嗨,我是爱丽丝
嗨,我很高兴

问题在于,默认情况下,R将字符理解为因子。
为了避免这种行为:

> test <- matrix(c("hi","i","am","bob"), nrow = 1)
> test <- rbind(test, c("hi","i","am","alice"))
> test
     [,1] [,2] [,3] [,4]   
[1,] "hi" "i"  "am" "bob"  
[2,] "hi" "i"  "am" "alice"

> testDF <- as.data.frame(test, stringsAsFactors = FALSE)
> testDF <- rbind(testDF, c("hi","i","am","happy"))
> testDF
  V1 V2 V3    V4
1 hi  i am   bob
2 hi  i am alice
3 hi  i am happy
选项(stringsAsFactors=FALSE)

测试请帮助我们通过向我们提供可复制的示例(即代码和示例数据)来帮助您,有关详细信息,请参阅。您正在做一些不应该做和不应该做的事情,即,您不应该创建空对象并在循环中增长它。我也不明白你为什么要用
sprintf
来做这个。如果必须的话,输入数字并使用
round
signif
。嗨,保罗,我刚刚注意到,我基本上可以把我的问题简化为:为什么data4plottingHi Roland,但我必须做大量的计算,并在一个数据框中得到其中几个计算的摘要。如果不是这样,我该如何实现这一点?我使用sprintf是因为我需要格式化一个值。我无法将输入设为数字,因为前两列必须是字符串。因此,如果第3列和第4列也是字符串(通过使用sprintf),或者我误解了吗?您正在寻找
选项(stringsAsFactors=FALSE)
。然而,我只能强烈重申,你的整个方法是你可以用来获得最终结果的效率最低的方法。陈述您的整个问题,这样人们可以向您展示更好的可能性。从R 4.0.0 data.frame()开始,默认值已更改为stringAsFactors=FALSE,因此不再需要显式更改。原来的问题不再出现
options(stringsAsFactors = FALSE)
test <- data.frame()
test<-rbind(test,c("hi","i","am","bob"))
test<-rbind(test,c("hi","i","am","alice"))