2015-03-30 65 views
0

我正在寻找从已装箱的数据生成轮廓图。我有两列,一列表示一个化合物的质量,另一列是皮尔逊相关系数值。这是我到目前为止已经做了一个小例子: -从装箱数据生成轮廓图

column1 <- as.numeric(c("100.01", "100.015", "100.017", "100.071", "100.099", "100.111", "100.153", "100.167")) 
column2 <- as.numeric(c("0.89", "0.64", "-0.14", "-0.79", "1", "0.31", "-0.27", "0.45")) 
test <- cbind(column1, column2) 
bin1 <- seq(100, 100.2, by = 0.05) 
bin2 <- seq(-1, 1, by = 0.5) 
res <- data.frame(Map(function(x,y) cut(x, breaks=y), 
        as.data.frame(test), list(bin1, bin2))) 

res1 <- cbind(test, res) 
str(res1) 
'data.frame': 8 obs. of 4 variables: 
$ column1: num 100 100 100 100 100 ... 
$ column2: num 0.89 0.64 -0.14 -0.79 1 0.31 -0.27 0.45 
$ column1: Factor w/ 4 levels "(100,100.05]",..: 1 1 1 2 2 3 4 4 
$ column2: Factor w/ 4 levels "(-1,-0.5]","(-0.5,0]",..: 4 4 2 1 4 3 2 3 

从这个我想产生哪些是从第一列分级值的频率绘制为频率的等高线图的第二栏中绘制的值。但是,它需要通过将第四栏的箱子分组到第三栏来完成。因此,通过这样做: -

combined <- split(res1[, 4], res1[, 3]) 
str(combined) 
List of 4 
$ (100,100.05] : Factor w/ 4 levels "(-1,-0.5]","(-0.5,0]",..: 4 4 2 
$ (100.05,100.1]: Factor w/ 4 levels "(-1,-0.5]","(-0.5,0]",..: 1 4 
$ (100.1,100.15]: Factor w/ 4 levels "(-1,-0.5]","(-0.5,0]",..: 3 
$ (100.15,100.2]: Factor w/ 4 levels "(-1,-0.5]","(-0.5,0]",..: 2 3 

我想,然后产生一个情节,其中值落入垃圾桶范围100的频率,100.05是针对落入四个独立的因子水平的值的频率绘制。所以如果20个数值落入100的第一个数值100.05中,我想看看有多少数值落入-1,-0.5,然后是-0.5,0等区域,然后再建立一个3D图。有没有办法做到这一点?我知道我可以做: -

cbind(table(res[, 3]) 

得到落入大众仓范围内的值的频率,我只是不知道如何提取落入Pearson相关系数斌范围值给定的垃圾桶范围。

干杯

回答

1

您可以尝试

lapply(combined, table) 

得到仓的频率在第4列