as.data.frame一定要小心的一个参数stringsAsFactors

如果说一个data.frame中的元素是factor,你想转化成numeric,你会怎么做?比如d[1,1]是factor

正确答案是

先as.character(x)

再as.numeric(x)

哈哈,我刚发现如果直接as.numeric,就不是以前的数字了,坑爹啊。

原来as.data.frame()有一个参数stringsAsFactors

如果stringAsFactor=F

就不会把字符转换为factor

这样以来,原来看起来是数字变成了character,原来是character的还是character

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-05 11:37:12

as.data.frame一定要小心的一个参数stringsAsFactors的相关文章

R语言中的 Vector, Array, List 和 Data Frame

1.Vector 所有的元素必须是同一类型. 例如下面的代码创建了2个vectors. name <- c("Mike", "Lucy", "John") age <- c(20, 25, 30) 2.Array & Matrix Matrix是一种特殊的vector.Maxtrix是一个拥有两个额外属性的vector:行数和列数. > x <- matrix(c(1,2,3,4), nrow=2, ncol=2)

转载:R语言Data Frame数据框常用操作

Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的. Data Frame每一列有列名,每一行也可以指定行名.如果不指定行名,那么就是从1开始自增的Sequence来标识每一行. 初始化 使用data.frame函数就可以初始化一个Data Frame.比如我们要初始化一个student的Data Frame其中包含ID和Name还有Gender以及Birthdate,那么代码为: studen

R语言Data Frame数据框常用操作

Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的. Data Frame每一列有列名,每一行也可以指定行名.如果不指定行名,那么就是从1开始自增的Sequence来标识每一行. 初始化 使用data.frame函数就可以初始化一个Data Frame.比如我们要初始化一个student的Data Frame其中包含ID和Name还有Gender以及Birthdate,那么代码为: studen

使用R语言操作data.frame

1 向一个data.frame指定列插入一列新数据 1.1 插入一列到指定位置 y<-1:4 data1 <-data.frame(x1=c(1,3,5,7), x2=c(2,4,6,8),x3=c(11,12,13,14),x4=c(15,16,17,18)) data2<-cbind(data1[,1:2],y,data1[,3:ncol(data1)]) 插到data1末尾 data2<-cbind(data1,y) 插到第一列 data2<-cbind(y,data1

R 语言中 data table 的相关,内存高效的 增量式 data frame

面对的是这样一个问题,不断读入一行一行数据,append到data frame上,如果用dataframe,  rbind() ,可以发现数据大的时候效率明显变低. 原因是 每次bind 都是一次重新整个数据集的重新拷贝 这个链接有人测试了各种方案,似乎给出了最优方案 http://stackoverflow.com/questions/11486369/growing-a-data-frame-in-a-memory-efficient-manner library(data.table) d

R vs Python:构建data.frame、读取csv与统计描述

一.Python 数据框就是典型的关系型数据库的数据存储形式,每一行是一条记录,每一列是一个属性,最终构成表格的形式,这是数据科学家必须熟悉的最典型的数据结构. 1.构建数据框 import pandas as pd data = {'year':[2010, 2011, 2012, 2010, 2011, 2012, 2010, 2011, 2012], 'team':['FCBarcelona', 'FCBarcelona', 'FCBarcelona', 'RMadrid', 'RMadr

R语言的data.frame()

R语言的数据框类似于矩阵,有行和列两个维度,然而数据框的每一列可以是不同的mode,例如某列由float组成,某列由char组成等等.技术层面上讲,数据框是一个每个组件长度都相等的list. > kids <- c('jack', 'jill') > ages <- c(12, 10) > d <- data.frame(kids, ages, stringsAsFactors = F) #创建数据框 > d kids ages 1 jack 12 2 jill

引用64位dll时候出现 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。试图加载格式不正确的程序。

引用64位dll时候出现 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序. 需要在web.config增加配置 <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup>

替换 data.frame 中的特殊的值

替换空值: foo <- data.frame("day"= c(1, 3, 5, 7), "od" = c(0.1, "#N/A", 0.4, 0.8)) NAs <- foo == "#N/A" ## by replace method is.na(foo)[NAs] <- TRUE ## or directly foo[NAs] <- NA 替换负值为0: 方法一: df[df < 0] =