根据条件在数据框中为变量添加前缀,然后创建一个新变量以显示哪些变量已添加前缀
Prefixing variables in a dataframe based on a condition and then creating a new variable to show which variables have been prefixed
我有一个包含变量的数据框 RingNo
> head(df)
Place Book.Number RingNo
1 WYT 2020#01 603701
2 WYT 2020#01 603701
3 WYT 2020#01 603701
4 WYT 2020#01 603702
5 WYT 2020#01 603703
6 WYT 2020#01 AFH5490
如果 df$RingNo
中的任何字符串只有 6 个字符,我想为其添加前缀“x”。 df$RingNo
中的所有字符串都有 6 个或 7 个字符。
我可以通过
实现以上目标
inds <- nchar(df$RingNo) == 6
df$RingNo[inds] <- paste0('x', df$RingNo[inds])
> head(df)
Place Book.Number RingNo
1 WYT 2020#01 x603701
2 WYT 2020#01 x603701
3 WYT 2020#01 x603701
4 WYT 2020#01 x603702
5 WYT 2020#01 x603703
6 WYT 2020#01 AFH5490
但是,如果我现在可以创建一个新变量 df$Comment
来指示哪些变量已添加前缀,那将非常有用。这是一个拥有超过 200,000 行的巨大数据框。
所以我得到这样的东西
Place Book.Number RingNo Comment
1 WYT 2020#01 x603701 Prefixed with an x
2 WYT 2020#01 x603701 Prefixed with an x
3 WYT 2020#01 x603701 Prefixed with an x
4 WYT 2020#01 x603702 Prefixed with an x
5 WYT 2020#01 x603703 Prefixed with an x
6 WYT 2020#01 AFH5490
您可以再次使用相同的 inds
变量:
df$Comment <- ''
df$Comment[inds] <- 'Prefixed with an x'
我们可以用 ifelse
df$Comment <- ifelse(inds, 'Prefixed with an x', '')
我有一个包含变量的数据框 RingNo
> head(df)
Place Book.Number RingNo
1 WYT 2020#01 603701
2 WYT 2020#01 603701
3 WYT 2020#01 603701
4 WYT 2020#01 603702
5 WYT 2020#01 603703
6 WYT 2020#01 AFH5490
如果 df$RingNo
中的任何字符串只有 6 个字符,我想为其添加前缀“x”。 df$RingNo
中的所有字符串都有 6 个或 7 个字符。
我可以通过
实现以上目标inds <- nchar(df$RingNo) == 6
df$RingNo[inds] <- paste0('x', df$RingNo[inds])
> head(df)
Place Book.Number RingNo
1 WYT 2020#01 x603701
2 WYT 2020#01 x603701
3 WYT 2020#01 x603701
4 WYT 2020#01 x603702
5 WYT 2020#01 x603703
6 WYT 2020#01 AFH5490
但是,如果我现在可以创建一个新变量 df$Comment
来指示哪些变量已添加前缀,那将非常有用。这是一个拥有超过 200,000 行的巨大数据框。
所以我得到这样的东西
Place Book.Number RingNo Comment
1 WYT 2020#01 x603701 Prefixed with an x
2 WYT 2020#01 x603701 Prefixed with an x
3 WYT 2020#01 x603701 Prefixed with an x
4 WYT 2020#01 x603702 Prefixed with an x
5 WYT 2020#01 x603703 Prefixed with an x
6 WYT 2020#01 AFH5490
您可以再次使用相同的 inds
变量:
df$Comment <- ''
df$Comment[inds] <- 'Prefixed with an x'
我们可以用 ifelse
df$Comment <- ifelse(inds, 'Prefixed with an x', '')