Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 无效的长度参数_R_Dataframe_Data Science_Sapply - Fatal编程技术网

R 无效的长度参数

R 无效的长度参数,r,dataframe,data-science,sapply,R,Dataframe,Data Science,Sapply,我想将数据帧的所有列转换为数字格式。所以我用lappy data.frame(lapply(dat, numeric)) 但这显示了一个无效的长度参数错误。 然而,当我尝试使用单个列时,它是有效的 lapply(dat$x.Type, numeric) 但是,我还是想知道如何用这个更新原始数据帧 我猜我的问题的解决方案是在所有列中运行一个应用lappy的循环。 问题是我很难弄明白怎么做 有人能帮我吗?试着用作为.numeric而不是numeric: dat <- as.data.f

我想将数据帧的所有列转换为数字格式。所以我用lappy

 data.frame(lapply(dat, numeric))
但这显示了一个无效的长度参数错误。 然而,当我尝试使用单个列时,它是有效的

 lapply(dat$x.Type, numeric)
但是,我还是想知道如何用这个更新原始数据帧

我猜我的问题的解决方案是在所有列中运行一个应用lappy的循环。 问题是我很难弄明白怎么做


有人能帮我吗?

试着用
作为.numeric
而不是
numeric

dat <- as.data.frame(lapply(dat, as.numeric))

dat如果您已经有一个现有的数据帧,另一个不错的选择:

library(dplyr)
dat <- dat %>% mutate_all(as.numeric)
库(dplyr)
数据%mutate_all(作为数字)

成功了,谢谢。你能更详细地解释一下吗?我的意思是这里的[as.data.frame]和[data.frame]基本上有什么区别?@AdhirajChattopadhyay这里的
as.data.frame
data.frame
之间没有实际区别。后者通过使用作为参数传递的数据结构来构造新的
data.frame
,而前者将给定的数据结构强制转换为
data.frame
。因此,从语义上讲,我更喜欢本例中的
as.data.structure
。as.numeric和numeric之间有什么区别?
numeric
用于声明变量类型。具体来说,它创建一个指定长度的新向量,类型为
double
。与此相反,
as.numeric
将现有数据强制转换为数字形式,即将其转换为
double
。如果有帮助的话,在其他编程语言中,类似于
as.numeric
所做的强制/转换称为“类型转换”。