Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.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
使用ifelse更改R中的列_R_If Statement - Fatal编程技术网

使用ifelse更改R中的列

使用ifelse更改R中的列,r,if-statement,R,If Statement,我想根据模式将ifelse条件应用于以下数据帧。我可以重复做,但我有很多数据 我的代码: d <- data.frame(x_1 = sample(1:100,10),x_2 = sample(1:100,10), y_1 =sample(1:100,10), y_2 =sample(1:100,10), y_3 =sample(1:100,10), y_4 =sample(1:100,10)) ifelse(d$x_1>d$y_1, 0, d$x

我想根据模式将ifelse条件应用于以下数据帧。我可以重复做,但我有很多数据

我的代码:

d <- data.frame(x_1 = sample(1:100,10),x_2 = sample(1:100,10), y_1 =sample(1:100,10), y_2 =sample(1:100,10), 
                 y_3 =sample(1:100,10), y_4 =sample(1:100,10))
ifelse(d$x_1>d$y_1, 0, d$x_1-d$y_1)
ifelse(d$x_2>d$y_2, 0, d$x_2-d$y_2)
ifelse(d$x_1>d$y_3, 0, d$x_1-d$y_3)
ifelse(d$x_2>d$y_4, 0, d$x_2-d$y_4) # x_1>y_5..., x_2>y_6,...

My x_.* are days of the week so I have x_1...x_7. But my y_.* are many. Code should work as follows:

x_1-y_1
x_2-y_2
x_3-y_3
x_4-y_4
x_5-y_5
x_6-y_6
x_7-y_7
x_1-y_8
x_2-y_9
.
.
.


如果要将每个
x.*
列与每个
y.*
列进行比较,可以使用
outer

首先找出
“x”
“y”

x_col <- grep('x', names(d), value = TRUE)
y_col <- grep('y', names(d), value = TRUE)
mapply(function(x, y) pmin(0, x - y), d[inds], d[y_col])
我们可以使用
mapply
减去列

x_col <- grep('x', names(d), value = TRUE)
y_col <- grep('y', names(d), value = TRUE)
mapply(function(x, y) pmin(0, x - y), d[inds], d[y_col])

如果要将每个
x.*
列与每个
y.*
列进行比较,可以使用
outer

首先找出
“x”
“y”

x_col <- grep('x', names(d), value = TRUE)
y_col <- grep('y', names(d), value = TRUE)
mapply(function(x, y) pmin(0, x - y), d[inds], d[y_col])
我们可以使用
mapply
减去列

x_col <- grep('x', names(d), value = TRUE)
y_col <- grep('y', names(d), value = TRUE)
mapply(function(x, y) pmin(0, x - y), d[inds], d[y_col])

你想对结果做什么?当前您正在将其打印到控制台。是否要将每个
x.*
列与每个
y.*
列进行比较?您应该检查:查看此处:我在编辑中添加了解释。您想对结果做什么?当前您正在将其打印到控制台。是否要将每个
x.*
列与每个
y.*
列进行比较?您应该检查:查看此处:我在编辑中添加了解释。我不想将每个x.*.*列与每个y.*,但根据我在编辑中添加的模式,我不想将每个x.*列与每个y.*列进行比较,而是根据我在编辑中添加的模式进行比较。