楼主: 进行式
16172 11

[问答] 江湖救急:如何替换R数据集中的观测值 [推广有奖]

  • 1关注
  • 0粉丝

已卖:5份资源

本科生

96%

还不是VIP/贵宾

-

威望
0
论坛币
43 个
通用积分
0.0600
学术水平
1 点
热心指数
0 点
信用等级
1 点
经验
1011 点
帖子
67
精华
0
在线时间
129 小时
注册时间
2013-12-17
最后登录
2019-5-24

楼主
进行式 发表于 2014-5-4 00:11:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据集是一个基因型数据。每一行都有3中基因型两个纯合子,一个杂合子。如AA、AG、GG或者是CC、CG、GG我想把AA、CC替换为0,AG、CG替换为1、GG替换为2。每一行观测都是只有三种可能即两个纯合子、一个杂合子,纯合子的类型不同。改如何写程序呢?多谢指教!数据结构如图所示

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:江湖救急 数据集 观测值 如图所示 三种可能 基因型 如图所示 江湖 如何 程序

34TBAWG_(K_NOR~LXH7OBVF.jpg (165.07 KB)

34TBAWG_(K_NOR~LXH7OBVF.jpg

沙发
qoiqpwqr 发表于 2014-5-4 01:55:52
x <- data.frame(v1 = c("AG", "AA", "GG"), v2 = c("CC", "CG", "AG"), v3 = c("GG", "AG", "AA"))
x <- as.matrix(x)
x[x %in% c("AA", "CC")] <- 0
x[x %in% c("AG", "CG")] <- 1
x[x %in% c("GG")] <- 2
class(x) <- "numeric"

藤椅
进行式 发表于 2014-5-4 10:08:43
qoiqpwqr 发表于 2014-5-4 01:55
x
谢谢大神!很给力啊,一下就出来了。但是还有个问题,因为AA与CC要替换的值也不同啊,该怎么修改呢?因为杂合的类型一共有AC、AG、AT、CG四种,他们的赋值都是1。就是相同两个会弄混,数据集的每一行都只有3种观测如AA、AC、CC,就是要把AA、CC也赋不同值。每一行的观测值都只有AA、AC、CC和AA、AG、GG以及CC、CG、GG或者是AA、AT、TT。每一行的纯合子要分开即0或2,可是直接赋值的话会有交叉AA、AC、CC和AA、AG、GG以及CC、CG、GG这三种中的纯合子分不开,AA是0,CC就只能是2了,CC是2又跟GG一样了。谢谢指导!

板凳
qoiqpwqr 发表于 2014-5-4 12:11:01
进行式 发表于 2014-5-4 10:08
谢谢大神!很给力啊,一下就出来了。但是还有个问题,因为AA与CC要替换的值也不同啊,该怎么修改呢?因为 ...
我不懂DNA,所以没看懂。但是不管怎么说,用类似

x[x %in% c("AG")] <- 1

这样的语句来改就行了。

报纸
进行式 发表于 2014-5-4 15:14:09
qoiqpwqr 发表于 2014-5-4 12:11
我不懂DNA,所以没看懂。但是不管怎么说,用类似

x[x %in% c("AG")]
恩,好的,我自己再摸索下。还有个小问题想向您请教,在R中如何根据观测值保留变量呢?就是几列变量中都含某一特定的观测值,如何将含改观测值的变量提取出来放在一个新的数据集里呢?谢谢!

地板
qoiqpwqr 发表于 2014-5-4 21:28:09
进行式 发表于 2014-5-4 15:14
恩,好的,我自己再摸索下。还有个小问题想向您请教,在R中如何根据观测值保留变量呢?就是几列变量中都含 ...
举个例子?

7
进行式 发表于 2014-5-5 12:37:41
qoiqpwqr 发表于 2014-5-4 21:28
举个例子?
如图所示的数据,我想保留所有包含AG的列,数据共有2000多列。谢谢了!

FALDFR2J9(A0}]QDJ4R5FUK.jpg (437.46 KB)

FALDFR2J9(A0}]QDJ4R5FUK.jpg

8
进行式 发表于 2014-5-5 12:39:30
qoiqpwqr 发表于 2014-5-4 12:11
我不懂DNA,所以没看懂。但是不管怎么说,用类似

x[x %in% c("AG")]
install.packages("stringr")
library(stringr)
sub("--","NA",original[1:2181])
fun2<-function(x){
  a<-substr(x[2],start=1,stop=1)
  for(i in 2:2181){
   
    x<-str_count(x,a)
  }
  return(x)                      #自编函数
}

my.2<-apply(gene,1,fun2)  
这个是我自己写的函数,但是不能处理含缺失值的数据?能帮我看下吗?谢谢了

9
qoiqpwqr 发表于 2014-5-5 21:33:20
进行式 发表于 2014-5-5 12:37
如图所示的数据,我想保留所有包含AG的列,数据共有2000多列。谢谢了!
  1. x <- data.frame(v1 = c("AG", "AA", "GG"), v2 = c("CC", "CG", "GG"), v3 = c("GG", NA, "AA"), v4 = c(NA, "AG", "GG"))
  2. x[, apply(x, 2, function(x) any(x == "AG", na.rm = TRUE))]
复制代码
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
zhanghehem + 1 + 1 + 1 精彩帖子
进行式 + 1 + 1 精彩帖子

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 1   查看全部评分

10
jmpamao 发表于 2014-5-5 23:19:51
也凑个热闹
  1. data[,sort(unique(which(data=="AG",arr.ind=T)[,2]))]
复制代码
已有 3 人评分学术水平 热心指数 收起 理由
zhanghehem + 1 + 1 精彩帖子
进行式 + 1 + 1 精彩帖子
qoiqpwqr + 1 精彩帖子

总评分: 学术水平 + 2  热心指数 + 3   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-21 21:33