R 无效的长度参数
我想将数据帧的所有列转换为数字格式。所以我用lappyR 无效的长度参数,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
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
所做的强制/转换称为“类型转换”。