R中的Datamatrix - 从散点图中提取数据

时间:2013-08-15 02:45:23

标签: r

我正在尝试修改R脚本,但我只有R:

的基本经验 问题1: 在行:for (i in 1:nrow(x))。整数1实际上做了什么?将值更改为2或更高似乎会对输出产生很大影响。

问题2: 我收到的消息是:

"Error in if (p[2] > a + b * p[1]) { : 
  missing value where TRUE/FALSE needed"

。一般来说,可能是什么导致这种情况?

非常感谢任何帮助!


编辑问题:

假设我有一个用于绘制散点图的数据框。数据框将按以下方式组织(CSV格式):

name ABC EFG
1    32  45
2    56  67
to, say 200 000 entries

我将首先做一个散点图,之后我将使用alphahull将数据集的一部分子集化为A并将它们导出为XYZ。这样做的脚本:

#plot first plot containing all data
plot(x = X$ABC,
y = X$EFG,
pch=20,
)

#subset data using ahull. choose 4 points on the plot
A <- ahull(locator(4, type="p", pch=20), alpha=10000) 

#exporting subset
XYZ <- {}
for (i in 1:nrow(X)) { if (inahull(A, c(X$ABC[i],X$EFG[i]))) XYZ <- rbind(X,X[i,])}

如果我选择的子集中的数据点数量太大,我收到以下消息:if(p [2]&gt; a + b * p [1]){:   缺少需要TRUE / FALSE的值

2 个答案:

答案 0 :(得分:0)

问题1 - 这是一个for循环 - 它对矩阵或数据帧x中的每一行执行一次(不确定x到底是什么)。将其更改为2意味着循环发生的时间更短。没有剩下的代码我就不能说太多了。

问题2 - 您可以发布整个代码吗?显然需要评估该表达式,并且缺少一个或多个值。

答案 1 :(得分:0)

假设您有数据 x

set.seed(123) # for reproducibility

x<-as.data.frame(rnorm(10)) # generate random number and store it as dataframe

k<-2  #assign n as 2 
for (i in (1:nrow(x))){
cat("this is row",i,"\n")
show (k)
k<-k+i
}
show (k)
this is row 1 
[1] 2
this is row 2 
[1] 3
this is row 3 
[1] 5
this is row 4 
[1] 8
this is row 5 
[1] 12
this is row 6 
[1] 17
this is row 7 
[1] 23
this is row 8 
[1] 30
this is row 9 
[1] 38
this is row 10 
[1] 47
> show (k)
[1] 57