Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于R中的另一列创建新列_R - Fatal编程技术网

基于R中的另一列创建新列

基于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

我有一个数据框架,它包含“nasia_coronal”和“coronal”之类的内容,我想去掉“nasia_”,并为标记为“nasia”的内容创建一个新列

我最初尝试使用
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