繁体   English   中英

R dataframe 转换数据类型?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM