我有一个数据框,其中包含" 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)
答案 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