根据R中的另一列创建新列

时间:2016-04-28 17:27:28

标签: r

我有一个数据框,其中包含" nasal_coronal"和"冠状"我想摆脱"鼻子_"并为标有" nasal"

的事物创建一个新列

我最初尝试使用grep()这样: data.df$nasal <- grep("^nasal", data$type, value = TRUE)但是R给出了错误,即替换的行数少于数据集。

这是创建迷你数据集的代码。

type <- c("nasal_coronal", "nasal_coronal", "coronal")
word <- c("something", "walk", "thing")

data.df <- data.frame(word, type) 

2 个答案:

答案 0 :(得分:1)

如果我们需要创建一个指示“&#39; type&#39;列有nasal_,我们可以使用grep

data.df$initType <- grepl("nasal_", data.df$type)

然后使用sub,我们删除匹配字符的子字符串,直到_为&#39;类型&#39;柱

data.df$type <- sub('.*_', '', data.df$type)

答案 1 :(得分:1)

在数据框中添加/删除列,如下所示:

 df <- data.frame(1:5, 21:25, 31:35)
 colnames(df) <-c("A","B","C")

 df

 A  B  C
 1 1 21 31
 2 2 22 32
 3 3 23 33
 4 4 24 34
 5 5 25 35

 # delete column "B":
 df$B <-NULL

 df

 df
 A  C
 1 1 31
 2 2 32
 3 3 33
 4 4 34
 5 5 35

 # add new column "extra": 

 df$extra <-rnorm(1:5)

 A  C      extra
 1 1 31  0.6739996
 2 2 32  1.0011144
 3 3 33 -0.1595998
 4 4 34  0.5696583
 5 5 35 -0.4564025