R:`ID:在添加ID列时将LHS强制转换为列表`,为什么?

hhh*_*hhh 3 warnings runtime-error r

我有数据

       N11.1 N22.2 N33.1 N44.1 N21.1 N31.1 N32.1
Sinus      1     0     0   0.0     0     0  12.0
ArrAHB     1     0     0   0.1     0     0  20.9
Run Code Online (Sandbox Code Playgroud)

在这里我想添加一个额外的列ID与值SinusArrAHB.

require(lattice)
Sinus<-c(1,0,0,0,0,0,12)
ArrAHB<-c(1,0,0,0.1,0,0,20.9)
Labels<-c("N11.1","N22.2","N33.1","N44.1","N21.1","N31.1","N32.1")
ID<-c("Sinus","Arr/AHB")
data.female<-data.frame(Sinus,ArrAHB,row.names=Labels)
data.female<-t(data.female)

> data.female$ID<-ID

Warning message:
In data.female$ID <- ID : Coercing LHS to a list
Run Code Online (Sandbox Code Playgroud)

为什么ID列的创建会导致data.frame中的强制?

PS我的目标是获取此数据所需的格式如在这里barchart(N11.1+N22.1+N33.1+N44.1+N21.1+N31.1+N32.1 ~ ID, data=data.female)这需要一个新的ID列在这里,我不明白为什么这个ID添加有时工作,有时没有.请解释.

Jak*_*upp 9

这是一个警告,因为转置的结果t()是一个矩阵.Matricies没有可访问的列名.使用时,必须在进行ID分配之前将矩阵强制转换为数据框as.data.frame()

这有效.

Sinus<-c(1,0,0,0,0,0,12)
ArrAHB<-c(1,0,0,0.1,0,0,20.9)
Labels<-c("N11.1","N22.2","N33.1","N44.1","N21.1","N31.1","N32.1")
ID<-c("Sinus","Arr/AHB")
data.female<-data.frame(Sinus,ArrAHB,row.names=Labels)
data.female<-as.data.frame(t(data.female))

data.female$ID<-ID
Run Code Online (Sandbox Code Playgroud)

请记住,数据框是按列而不是按行定义的.数据框定义应按列.