我讀一個CSV文件爲R的每一行語句如下:執行,如果對R中
3,3
3,2
3,3
3,3
3,3
3,3
2,3
1,2
2,2
3,3
我想一個編號分配給各9種獨特的可能性,我的數據是(3和3是9,3和2是8,2和3是6等)。我一直試圖設計一個嵌套的if語句來評估每一行,在第三列中分配一個數字,併爲數據集中的每一行執行此操作。我相信這可以通過apply函數完成,但是我無法在if函數中使用if語句。兩列都有可能值1,2或3。這是我的代碼迄今,只是想分配一個9至3/3列和0到一切:
#RScript for haplotype analysis
#remove(list=ls())
options(stringsAsFactors=FALSE)
setwd("C:/Documents and Settings/ColumbiaPC/Desktop")
#read in comma-delimited, ID-matched genotype data
OXT <- read.csv("OXTRhaplotype.csv")
colnames(OXT)<- c("OXT1","OXT2")
OXT$HAP <- apply(OXT, 1, function(x) if(x[1]=="3"&&x[2]=="3")x[3]=="9" else 0))
感謝您的任何提前幫助。
非常聰明的解決方案! – 2011-05-04 17:10:08
更好的是,用矩陣子集替換'sapply':嘗試'[as.matrix(df)]'。 – Aaron 2011-05-04 17:21:22
+1,你是第一個:-) @Aaron(+1)非常好的評論! – chl 2011-05-04 17:35:54