基于R中的另一列创建新列
我有一个数据框架,它包含“nasia_coronal”和“coronal”之类的内容,我想去掉“nasia_”,并为标记为“nasia”的内容创建一个新列 我最初尝试使用基于R中的另一列创建新列,r,R,我有一个数据框架,它包含“nasia_coronal”和“coronal”之类的内容,我想去掉“nasia_”,并为标记为“nasia”的内容创建一个新列 我最初尝试使用grep()如下: data.df$nasia如果我们需要创建一个列,表明“type”列具有nasia\uucode>,我们可以使用grep,即 data.df$initType <- grepl("nasal_", data.df$type) 在数据框中添加/删除列,如下所示: df <- data.frame
grep()
如下:
data.df$nasia如果我们需要创建一个列,表明“type”列具有nasia\uucode>,我们可以使用grep
,即
data.df$initType <- grepl("nasal_", data.df$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
df您应该使用gsub命令,而不是grep。grep只执行搜索。gsub将执行替换搜索,并返回与原始向量长度相同的向量。感谢您的回答!我用data.df$nasical@Lisa更新了帖子。我想您需要一个逻辑列来指示类型中是否有name
子字符串。
data.df$type <- sub('.*_', '', data.df$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