Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R双循环:外部还是应用?_R_For Loop_Apply_Outer Join - Fatal编程技术网

R双循环:外部还是应用?

R双循环:外部还是应用?,r,for-loop,apply,outer-join,R,For Loop,Apply,Outer Join,我有以下代码: a <- c(1,2,2,3,4,5,6) b <- c(4,5,6,7,8,8,9) data <- data.frame(cbind(a,b)) trial <- copy(data) for (j in 1: ncol(trial)) { for (i in 2: nrow(trial)) { if (trial[i,j] == trial[i-1,j] & !is.na(trial[i,j]) & !is.na(trial[

我有以下代码:

a <- c(1,2,2,3,4,5,6)
b <- c(4,5,6,7,8,8,9)
data <- data.frame(cbind(a,b))
trial <- copy(data)
for (j in 1: ncol(trial)) {
  for (i in 2: nrow(trial)) {
  if (trial[i,j] == trial[i-1,j] & !is.na(trial[i,j]) & !is.na(trial[i-1,j]))  {
     trial[i,j] <- trial[i-1,j] + (0.001*sd(trial[,j], na.rm = T))
    }
 }
}

a这对你有用吗

a <- c(1,2,2,3,4,5,6)
b <- c(4,5,6,7,8,8,9)
data <- data.frame(cbind(a,b))
trial <- data.frame(a,b)
for (j in 1: ncol(trial)) {
# Finds matching rows and add a single row shift in the results
# (diff returns n-1 elements and we want n elements) 
  matching<-!c(TRUE, diff(trial[,j]))
  trial[matching,j]<- data[matching,j]+(0.001*sd(trial[,j], na.rm = T))
}

a带有
数据。表

library(data.table)
f <- function(x)ifelse(x==shift(x), x + 0.001* sd(x, na.rm = TRUE), x)
setDT(data)[, lapply(.SD, f), ]

尝试
库(data.table);f@Khashaa你能给我解释一下你的解决方案吗?我是个新手。。功能很清楚,其余的呢?[…]和.sda。您可以在这里@khasha了解data.table。非常感谢!如果你想把它作为一个答案,那就是我一直在寻找的,我不能给你重点,因为我不到15岁不幸的是,我仔细检查了你的代码,出现了一个问题:第一个观察值变成了一个NAadd
default
值0(或任何其他值),以
lag
,如果你使用
dplyr
as
ifelse(x==lag(x,默认值=0))
data.table::shift
具有
fill
参数。
library(dplyr)
f <- function(x)ifelse(x==lag(x), x + 0.001* sd(x, na.rm = TRUE), x)
data %>%
  mutate_each(funs(f))