基于另一列创建一个新列R
问题描述:
我有一个数据框,有像“nasal_coronal”和“coronal”,我想摆脱“nasal_”,并创建一个新的列标记为“nasal “基于另一列创建一个新列R
我最初试图使用这样的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)
答
添加/删除数据帧中的列如下:
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
您应该使用gsub命令而不是grep。 grep仅执行搜索。 gsub将执行带替换的搜索并返回一个与原始矢量长度相同的矢量。 – Dave2e