我想处理data.frame1[1,]<-data.frame[1,],但我遇到了麻烦

我想处理data.frame1[1,]<-data.frame[1,],但我遇到了麻烦,r,R,考虑这个sampel数据 df1<-data.frame(c(1,2,1),c(3,3,2),c(2,5,8)) df2<-data.frame("a","a","a") 但在我这样做之后:df1[1,]数据帧中的每一列都必须具有相同的类型。这里的关键是df2中的值是因子,而不是字符(因为stringsAsFactors=TRUE)。因子具有基本的整数表示形式,因此当您在同一向量中组合因子和数值时,因子将升级为数值类型。因子的第一级对应于1,这就是a变成1的原因 关于系数与字符类型

考虑这个sampel数据

df1<-data.frame(c(1,2,1),c(3,3,2),c(2,5,8))
df2<-data.frame("a","a","a")

但在我这样做之后:
df1[1,]数据帧中的每一列都必须具有相同的类型。这里的关键是
df2
中的值是因子,而不是字符(因为
stringsAsFactors=TRUE
)。因子具有基本的整数表示形式,因此当您在同一向量中组合因子和数值时,因子将升级为数值类型。因子的第一级对应于
1
,这就是
a
变成
1
的原因

关于系数与字符类型的转换,请注意以下几点:

c("a", 2, 3)
##  "a" "2" "3"
c(factor("a"), 2, 3)
## 1 2 3

@Chaconne的回答给出了一个很好的解释。如果你真的想做你想做的事,你可以这样做:

df1<-data.frame(v1=c(1,2,1),v2=c(3,3,2),v3=c(2,5,8))
df2<-data.frame("a","a","a",stringsAsFactors=FALSE)
df1[1,] <- df2[1,]

data.frame的DF1列不能同时包含数字和字符数据类型。是否希望它们都是字符值?为什么要先插入这样一行?这纯粹是为了表现吗?
c("a", 2, 3)
##  "a" "2" "3"
c(factor("a"), 2, 3)
## 1 2 3
df1<-data.frame(v1=c(1,2,1),v2=c(3,3,2),v3=c(2,5,8))
df2<-data.frame("a","a","a",stringsAsFactors=FALSE)
df1[1,] <- df2[1,]