我有一个名为的数据帧newdata
.它有两列名为BONUS
和GENDER
.
当我写下面的代码时r
:
> newdata <- within(newdata,{
PROMOTION=ifelse(BONUS>=1500,1,0)})
Run Code Online (Sandbox Code Playgroud)
虽然我没有在这里使用循环,但是以下代码在没有循环的情况下不起作用.为什么?
> add <- with(newdata,
if(GENDER==F)sum(PROMOTION))
Warning message:
In if (GENDER == F) sum(PROMOTION) :
the condition has length > 1 and only the first element will be used
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么在第一个代码中使用了所有元素?
我有三个数据集.
第1组:
A B
23 12
34 81
13 45
11 23
Run Code Online (Sandbox Code Playgroud)
第2集:
A B
.34 1.1
.5 2.0
.4 1.8
Run Code Online (Sandbox Code Playgroud)
第3组:
A B
-23 5
-3 0.1
.8 -2.3
-.6 1.4
4 3.2
Run Code Online (Sandbox Code Playgroud)
现在我必须创建一个数据框,如下所示:
A B Type
23 12 1
34 81 1
.
.
.
11 23 1
.34 1.1 2
.5 2.0 2
.4 1.8 2
-23 5 3
.
.
.
4 3.2 3
Run Code Online (Sandbox Code Playgroud)
我的尝试:
set1 <- data.frame(A=c(23,34,13,11),B=c(12,81,45,23))
set2 <- data.frame(A=c(.34,.5,.4),B=c(1.1,2,1.8))
set3 <- data.frame(A=c(-23,-3,.8,-.6,4),B=c(5,.1,-2.3,1.4,3.2))
dat123 <- …
Run Code Online (Sandbox Code Playgroud) 我有一个数据集:
X Y
20 12
24 11
12 7
10 2
41 24
13 9
50 17
4 12
17 12
35 19
Run Code Online (Sandbox Code Playgroud)
现在我必须在20 <X <50时找到Y的平均值.
我的尝试:
data <- data.frame(X=c(20,24,12,10,41,13,50,4,17,35),
Y=c(12,11,7,2,24,9,17,12,12,19))
sub <- subset(data,X>20 & X<50)
mean(sub$Y)
Run Code Online (Sandbox Code Playgroud)
有没有直接的方法在20 <X <50时找到Y的平均值而不修改原始数据框,即没有子集呢?