基于data.frame的行值创建新变量

时间:2015-12-27 03:18:18

标签: r dataframe subset

我是R的新手,对语言不太熟悉。

我在R中有一个简单的数据框。我想添加一个空白列,然后编写一些简单的公式,根据相应行的列中的数据填充每一行的新列。以下是数据框的示例:

<base href="http://106.232.2.2:3000/">
<script src="assets/jquery-9e7b5a8e0157d7776b987d8963c9c786.js?body=1" data-turbolinks-track="true"></script>
<script src="assets/jquery_ujs-38e73f935d8e2feac7f47b8c67317969.js?body=1" data-turbolinks-track="true"></script>
<script src="assets/comment-ce9e9195c9ca532a7968ea39a6e1f67f.js?body=1" data-turbolinks-track="true"></script>

然后,我想添加一个新列,该列将填充公式。例如,对于给定的ID:如果年龄40-59和BP 100-120和Chl&lt; 4 AND DM“N”=“10”。

我可以使用R中的哪些包和函数来执行此操作?非常感谢。

1 个答案:

答案 0 :(得分:0)

想象一下,你有三个条件:

  1. 年龄&gt; 50&amp; BP&lt; 100
  2. 年龄&gt; 50&amp; BP&gt; = 100
  3. 年龄<= 50
  4. 您希望分别对值v1v2v3进行分配,并将它们存储在新变量中。

    dat$newvar = NA # creates a new variable filled with NAs
    ind1 = dat$Age > 50 & dat$BP < 100
    ind2 = dat$Age > 50 & dat$BP >= 100
    ind3 = dat$Age <=50
    
    dat$newvar[ind1] = v1
    dat$newvar[ind2] = v2
    dat$newvar[ind3] = v3
    

    您可以在所需的条件下使用相同的方法,只需确保条件相互清晰。与任何条件不匹配的行将保持NA