r - 如何迭代 R 中因子的级别?
问题描述
我想创建一个函数,通过访问第一个字母来帮助我识别因子级别中可能出现的错误,所以首先我专注于识别部分。
数据框 '''
alleles<-(c('A*24:02', 'A*11:01', 'blank', 'A*31:01'))
as.factor(alleles)
freq<-c(0.3782, 0.4209, 0.0362, 0.0761)
df<-data.frame(alleles, freq)
'''
我的尝试_'''
for(i in df$alleles){
if (i != 'A'){
can<-c()
append(can, i)
df$alleles<-df$alleles[-c(can)]
}
}
''' 错误消息 -c(can) 中的错误:一元运算符的参数无效
观察 如果我执行 '''print(can)''',则输出为“NULL”,这意味着它无法使用“append”。
解决方案
你也可以试试:
#Data
alleles<-(c('A*24:02', 'A*11:01', 'blank', 'A*31:01'))
freq<-c(0.3782, 0.4209, 0.0362, 0.0761)
df<-data.frame(alleles, freq)
can<-c()
#Check
for(i in 1:length(df$alleles))
{
if (substr(df$alleles[i],1,1) != 'A'){
can <- c(can, as.character(df$alleles[i]))
}
}
#Apply
df<-df[-which(df$alleles %in% can),]
输出:
df
alleles freq
1 A*24:02 0.3782
2 A*11:01 0.4209
4 A*31:01 0.0761
推荐阅读
- python - 向文本文件添加信息,TypeError: '_io.TextIOWrapper' object is not subscriptable
- javascript - 深度嵌套的 Angular 路由
- android - Profiler 无法检测到我的设备
- jupyter-notebook - 在 Jupyter Notebook 中执行降价单元的内容
- ruby - 在 `SecureRandom.hex` 上使用 `SecureRandom.base64` 的用例是什么?
- python - python中是否有所有字母数字符号的列表?
- java - SQS 队列 URL 不同于 AWS CLI 和 Java SDK
- javascript - Shiny:在非活动的 tabPanel 上更新 DT
- omnet++ - 静脉中的不同模型
- laravel - 数组到字符串转换电子邮件唯一验证 Laravel