首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >as.numeric与chr

as.numeric与chr
EN

Stack Overflow用户
提问于 2012-09-27 08:20:20
回答 2查看 6.2K关注 0票数 1

我有以下代码

代码语言:javascript
复制
fig4 <- data.frame(chads=NA,age=NA,treatment=NA,mean=NA,lower=NA,upper=NA)
fig4$chads <- as.factor(fig4$chads)
levels(fig4$chads) <- c(0,1,2,3,4,5,6)
fig4$age <- as.factor(fig4$age)
levels(fig4$age ) <- c("u80","o80")
fig4$treatment <- as.factor(fig4$treatment)
levels(fig4$treatment) <- c("OAC","OAP")
fig4$mean <- as.numeric(fig4$mean)
fig4$lower <- as.numeric(fig4$lower)
fig4$upper <- as.numeric(fig4$upper)

> str(fig4)
'data.frame':   1 obs. of  6 variables:
 $ chads    : Factor w/ 7 levels "0","1","2","3",..: NA
 $ age      : Factor w/ 2 levels "u80","o80": NA
 $ treatment: Factor w/ 2 levels "OAC","OAP": NA
 $ mean     : num NA
 $ lower    : num NA
 $ upper    : num NA

到目前一切尚好。但之后我会这样做:

代码语言:javascript
复制
vc <- as.vector(c(6,"o80","OAC",0.1,0.02,0.25), mode = "any")
fig4 <- rbind(fig4,vc)

这将导致以下结果:

代码语言:javascript
复制
> str(fig4)
'data.frame':   2 obs. of  6 variables:
 $ chads    : Factor w/ 7 levels "0","1","2","3",..: NA 7
 $ age      : Factor w/ 2 levels "u80","o80": NA 2
 $ treatment: Factor w/ 2 levels "OAC","OAP": NA 1
 $ mean     : chr  NA "0.1"
 $ lower    : chr  NA "0.02"
 $ upper    : chr  NA "0.25"

为什么数字向量变成了字符向量?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-27 08:46:23

列表可以包含多种类型的对象,因此要避免将新数据转换为字符,您可以执行以下操作:

代码语言:javascript
复制
fig4[nrow(fig4) + 1, ] <- list(6,"o80","OAC",0.1,0.02,0.25)
票数 3
EN

Stack Overflow用户

发布于 2012-09-27 08:22:56

出于同样的原因,一个矩阵-向量和矩阵都只能包含一种类型。当你把角色加入到混合中时,你就得到了角色。

使用data.frame保存不同类型的“列”,然后对单个列进行子集。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12612337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档