我正在获取bins.txt并将其数据保存在" data"中。我尝试打印它并正确打印。
data <- read.csv("bins.txt", header = FALSE)
for (n in 1:24060)
{
j=(data[n,])
for (i in 1:20)
{
m=(i-1)*80
n=(i*80)-1
if(m<j && j<n)
{
print (i)
}
}
}
我希望不打印(i)但是将i的值存储在某个向量中并将其打印在循环外部并将其传递给
obs="vector"
有点像这样
答案 0 :(得分:0)
不知道你的bins.txt是什么。由于我真的不喜欢嵌套循环,所以这里有一个建议:
(i)在条件检查中定义20对最小(或m)和最大(或j)值:
m <- lapply(1:20, function(x) (x-1)*80)
n <- lapply(1:20, function(x) (x*80)-1)
(ii)基于m和n的二十种组合,基于数据返回二十个向量的列表:
lapply(1:20, function(x) dat[m[[x]] < dat & dat < n[[x]]])
假设您的数据是
dat <- seq(0, 1000, length.out=50)
返回的前六个向量是:
[[1]]
[1] 20.40816 40.81633 61.22449
[[2]]
[1] 81.63265 102.04082 122.44898 142.85714
[[3]]
[1] 163.2653 183.6735 204.0816 224.4898
[[4]]
[1] 244.8980 265.3061 285.7143 306.1224
[[5]]
[1] 326.5306 346.9388 367.3469 387.7551
[[6]]
[1] 408.1633 428.5714 448.9796 469.3878