R语言-修改(替换)因子变量的元素操作
作者:贝壳沙滩
因子变量的核心是水平,通过指定水平来修改。
x<-c(1,1,1,1,2,2,2,3,3,3,3,4) xx<-factor(x);xx levels(xx) #得到水平为3的位置 level_3<-which(levels(xx)==3) #重新赋值 levels(xx)[level_3]<-03 xx #由于新值是03,0开头,所以把03当成3处理 levels(xx)[level_3]<-c("03") xx #字符串会自动转换成因子 levels(xx)[level_3]<-333 xx #只要不是0开头的数字,都可以识别成因子 #如果还存在原来的因子水平,则删除未使用的因子水平 xx<-droplevels(xx)
补充:R语言开发之变量的数据类型&赋值&查找&删除
R语言中的变量提供了程序可以操作的命名存储,这个变量可以存储原子向量,而原子向量组或许多R对象的组合。所以,有效的变量名称应该是由字母,数字和点或下划线字符组成,并且变量名称以字母开头,或者点后面不带数字,我们来看一些变量命名的示例,如下:
变量名 | 合法性 | 原因 |
---|---|---|
var_name2. | 有效 | 由字母,数字,点和下划线组成 |
var_name% | 无效 | 含有字符“%”因此无效。只允许点(.)和下划线(_)组成。 |
2var_name | 无效 | 以数字开头,因此无效。 |
.var_name, var.name | 有效 | 可以以点(.)开头,但点(.)后面不应是数字。 |
.2var_name | 无效 | 以点(.)但后跟一个数字使其无效。 |
_var_name | 无效 | 以下划(_)开始因此无效。 |
R语言中的变量可以使用向左,向右和等于运算符分配值,还可以使用print()或cat()函数打印变量的值,其中cat()函数将多个变量或项目组合成一个连续的打印输出 ,我们来看下使用实例:
输出结果如下:
上述代码中的向量c(TRUE,1)具有逻辑和数字类的混合,所以逻辑类被强制为数字类,使TRUE为1。大家注意下就好。
R语言中的变量本身没有被声明为任何数据类型,而是获取分配给它的R对象的数据类型,所以R被称为动态类型语言,这意味着我们可以在程序中使用它时一次又一次地改变同一个变量的变量的数据类型,或者使用同一个变量来存储任何数据类型,来看下案例:
输出结果如下:
我们如想要知道工作区中当前可用的所有变量,可使用ls()函数,并且它也可以使用模式来匹配变量名,示例如下:
输出结果如下:
根据我们的环境中声明的变量可能所有不同,所以我们的输出和这里输出结果可能不太一样,注意红色框框中的内容就好。我们接下来尝试使用ls()函数的模式来匹配变量名,示例如下:
输出结果如下:
以点(.)开头的变量是隐藏的,它们可以使用ls()函数的“all.names = TRUE”参数列出,示例如下:
输出结果如下:
我们可以使用rm()函数删除变量,示例如下:
输出结果如下:
好啦,本次记录就到这里了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。