dataf <- data.frame(Alert=logical(),IQR=integer(),Kurtosis=integer(),Entropy=integer(),Skewness=integer(),Sex=character(),Complex=character(),Picos=integer(),PicosFil=integer(),Umbral=integer(),Gama=character(),stringsAsFactors=FALSE)
dataf <- rbind(dataf,list(Alert=FALSE,IQR=2.6938,Kurtosis=1.73447,Entropy=1.76160,Skewness=0.140613,Sex="Mujer",Complex="Slim",Picos=0,PicosFill=0,Umbral=15.708,Gama="Alta"))
dataf <- rbind(dataf,list(Alert=FALSE,IQR=0.179574,Kurtosis=19.0538,Entropy=0.74779,Skewness=1.1355,Sex="Mujer",Complex="Slim",Picos=1,PicosFill=1,Umbral=18.975,Gama="Media"))
我遇到Gama
的问题,当我输入新值(字符串)时,我收到以下错误:
警告讯息: 在
[<-.factor
(*tmp*
,ri,value =“Media”)中: 无效因子水平,NA生成
答案 0 :(得分:0)
您需要将stringsAsFactors=FALSE
传递给您的列表。
您可以看到添加第一行的时间,df上的所有character
列都转为factor
dataf <- data.frame(Alert=logical(),IQR=integer(),Kurtosis=integer(),Entropy=integer(),Skewness=integer(),Sex=character(),Complex=character(),Picos=integer(),PicosFil=integer(),Umbral=integer(),Gama=character(),stringsAsFactors=FALSE)
dataf <- rbind(dataf,list(Alert=FALSE,IQR=2.6938,Kurtosis=1.73447,Entropy=1.76160,Skewness=0.140613,Sex="Mujer",Complex="Slim",Picos=0,PicosFill=0,Umbral=15.708,Gama="Alta"), stringsAsFactors=FALSE)
dataf <- rbind(dataf,list(Alert=FALSE,IQR=0.179574,Kurtosis=19.0538,Entropy=0.74779,Skewness=1.1355,Sex="Mujer",Complex="Slim",Picos=1,PicosFill=1,Umbral=18.975,Gama="Media"), stringsAsFactors=FALSE)
答案 1 :(得分:0)
您可以使用do.call
执行此操作。
lst <- list(
list(Alert=FALSE,IQR=2.6938,Kurtosis=1.73447,Entropy=1.76160,Skewness=0.140613,Sex="Mujer",Complex="Slim",Picos=0,PicosFill=0,Umbral=15.708,Gama="Alta"),
list(Alert=FALSE,IQR=0.179574,Kurtosis=19.0538,Entropy=0.74779,Skewness=1.1355,Sex="Mujer",Complex="Slim",Picos=1,PicosFill=1,Umbral=18.975,Gama="Media")
)
do.call(rbind.data.frame, lst)
请注意,do.call(rbind, lst)
将返回matrix
,您需要明确调用data.frame
方法。