[英]R dataframe converting data types?
我是 R 的新手,并试图找到自己的脚。
我有一个 R dataframe 问题,它似乎在自动转换我的数据类型。 下面的代码用于创建 dataframe。
name <- c("Amy", "Bill", "Carl")
class(name)
DAD <- c(80, 65, 50)
BDA <- c(70, 50, 80.4)
gender <- as.factor(c("F", "M", "M"))
nationality <- as.factor(c("IRL", "UK", "IRL"))
age <- c(20, 21, 22)
age <- as.integer(age)
DAD <- as.integer(DAD)
BDA <- as.integer(BDA)
student <- data.frame(name, age, gender, nationality, DAD, BDA)
student$average <- as.double(student$BDA + student$DAD)/2
当我在此之后运行 str(student) 时,我得到以下屏幕截图:
当我添加以下条目时,我的所有数据类型似乎都在转换为字符 - 为什么?
student <- rbind(student, c("Dennis", 23, "M", "UK", 55, 70))
为什么会这样?
因为一个vector
不能有多种数据类型。 它将根据数据类型的优先顺序强制转换为单一数据类型。 在这里, character
优先于numeric
,因此如果有单个character
,则整个向量都会被转换。 补救措施 - 使用list
student <- rbind(student, list("Dennis", 23, "M", "UK", 55, 70, NA))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.