data.frame,class=data.frame,typeof=list,如何运行数学函数(例如cov

data.frame,class=data.frame,typeof=list,如何运行数学函数(例如cov,r,dataframe,typeof,R,Dataframe,Typeof,我有一个具有上述属性的data.frame。它本质上是使用Rbbg下载的,然后经过重塑,所有Nas都被丢弃。现在我无法运行任何数学函数,因为我总是收到错误消息“is.numeric(x)| | is.logical(x)not TRUE”。数据帧看起来如下所示。有人能帮我吗 最好的 安德烈亚斯 我可以使用以下方法重现错误: cov(data.frame(a=1,b="a")) #Error: is.numeric(x) || is.logical(x) is not TRUE 因此,我假设您的

我有一个具有上述属性的data.frame。它本质上是使用Rbbg下载的,然后经过重塑,所有Nas都被丢弃。现在我无法运行任何数学函数,因为我总是收到错误消息“is.numeric(x)| | is.logical(x)not TRUE”。数据帧看起来如下所示。有人能帮我吗

最好的 安德烈亚斯


我可以使用以下方法重现错误:

cov(data.frame(a=1,b="a"))
#Error: is.numeric(x) || is.logical(x) is not TRUE
因此,我假设您的
date
列(或其他列)是一个字符或因子变量。当您将数据传递给正在使用的函数时,将其排除在外:

cov(df[,-1])
此外,您还应该使用

df$date <- as.Date(as.character(df$date))

df$date将其转换为数字。并提供一个可复制的示例,否则您将被否决。可复制的示例()将很好。我猜您将包含
date
列,但如果没有您的代码,则很难说。将其转换为数字不起作用,错误消息是“(list)无法强制键入double”.我建议上述内容是可复制的example@user2157086不是。使用
dput
save
输出示例对象。这是源代码df,感谢您的建设性意见。错误消息不是由字符串引起的。转换为矩阵解决了问题。矩阵只能包含一种数据类型。很可能是通过转换为矩阵,您将“因子”列强制为“数值”。
df$date <- as.Date(as.character(df$date))