小编ABC*_*ABC的帖子

以下两个代码之间的区别

我有一个名为的数据帧newdata.它有两列名为BONUSGENDER.

当我写下面的代码时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)

我的问题是为什么在第一个代码中使用了所有元素?

loops for-loop if-statement r

1
推荐指数
1
解决办法
58
查看次数

r,在data.frame中添加一列

我有三个数据集.

第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)

r dataframe

1
推荐指数
1
解决办法
667
查看次数

更好地形成子集数据的平均值

我有一个数据集:

    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的平均值而不修改原始数据框,即没有子集呢?

r dataframe

0
推荐指数
1
解决办法
136
查看次数

标签 统计

r ×3

dataframe ×2

for-loop ×1

if-statement ×1

loops ×1