我在R中的数据类中包含数据:
Input_SNP Set_1 Set_2 Set_3 Set_4 Set_5 Set_5
10.67 7.91 6.98 7.93 7.70 11.15 8.58
我实际上有500套。我想计算值大于或等于我的Input_SNP列的集合的比例。例如,这有1个值(11.15)大于或等于10.67。所以我想1 /(套数)。我确定这很简单,怎么办呢?
答案 0 :(得分:1)
<head runat="server">
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js" type="text/javascript"></script>
<script src="scripts/ScrollableGridPlugin.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="Stylesheet" type="text/css" />
<link rel="stylesheet" href="css/default.css"/>
<script src="scripts/default.js" type="text/javascript"></script>
<script type="text/javascript">
var scroll = {
Y: '#<%= hfScrollPosition.ClientID %>'
};
</script>
</head>
如果您不想使用数据框,则以下使用矩阵:
data = read.table(header = T, text = "Input_SNP Set_1 Set_2 Set_3 Set_4 Set_5 Set_5
10.67 7.91 6.98 7.93 7.70 11.15 8.58")
# Compare all the values (except the first) to the first
data[,-1] > data$Input_SNP
# Set_1 Set_2 Set_3 Set_4 Set_5 Set_5.1
# [1,] FALSE FALSE FALSE FALSE TRUE FALSE
# Get the length of "true" index
length(which(data[,-1] > data$Input_SNP)) / (ncol(data) - 1)
# 0.1666667
答案 1 :(得分:1)
无论是矩阵的数据框,您都可以尝试:
rowMeans(df[,-1] > df[,1], na.rm=TRUE)
#[1] 0.1666667
或者,如果我们使用您的上一个问题扩展数据,它仍然有效:
rowMeans(df[,-1] > df[,1], na.rm=TRUE)
#[1] 0.4000000 1.0000000 NaN 0.0000000 0.2000000 0.2000000 0.1666667
并确保它适用于矩阵:
mat <- as.matrix(df)
rowMeans(mat[,-1] > mat[,1], na.rm=TRUE)
#[1] 0.4000000 1.0000000 NaN 0.0000000 0.2000000 0.2000000 0.1666667
扩展数据
df <- read.table(text="Input_SNP Set_1 Set_2 Set_3 Set_4 Set_5 Set_6
1.09 0.162 NA 2.312 1.876 0.12 0.812
0.687 NA 0.987 1.32 1.11 1.04 NA
NA 1.890 0.923 1.43 0.900 2.02 2.7
2.801 0.642 0.791 0.812 NA 0.31 1.60
1.33 1.33 NA 1.22 0.23 0.18 1.77
2.91 1.00 1.651 NA 1.55 3.20 0.99
2.00 2.31 0.89 1.13 1.25 0.12 1.55", header=T)
<强>更新强>
如果要将数据框与数字向量进行比较,则不需要第二个尺寸,因为它没有尺寸:
rowMeans(df[-1] > my_vector, na.rm=T)