首页 > 解决方案 > 根据条件选择和修改数据框中的行

问题描述

这是我的第一个问题,我最近才开始学习 R,所以请温柔一点。

X 是具有变量 V1 和 V2 的数据帧。

set.seed(1)

V1 <- c(20:100)

V2 <- stringi::stri_rand_strings(81, 5)

X <- data.frame(V1, V2)

我如何能:

a)创建一个新的数据框,其中选择变量 V1 在第二个数字的位置包含 5 的行?(表示 V1 的值为 25、35、45 等的行)

b)创建一个新的数据框,在 V1 在第二个数字的位置包含 5 的位置从 V2 中选择行?(表示 V2 的行,其中 V1 的值为 25、35、45 等)

它本质上与前一个数据帧相同,但构建它的过程不同。

c) 通过在 V2 中的 3. 和 4. 符号之间插入一个符号(为了问题,说“X”)来修改 V2?

谢谢!

标签: rdataframe

解决方案


你可以做 :

temp <- X[substring(X$V1, 2, 2) == 5, ]

所以问题 a) 的答案是:temp$V1

问题 b) 是:temp$V2

对于问题 c),我们可以使用substring粘贴 的第 1 到第 3 个字母V2,在其间和剩余字符串之间插入“X”来创建新列作为V3

temp$V3 <- paste0(substring(temp$V2, 1, 3), 'X', substring(temp$V2,  4))

推荐阅读