R 基于其他字符列中的组,使用向量值创建新列

R 基于其他字符列中的组,使用向量值创建新列,r,R,我对R还是个新手,目前仍在使用data.frame。 我有一个字符列,不同的组在数字上有所不同。例如,前七行为“A”,后五行为“B”,依此类推。现在我有一个向量,它的长度等于组的总数。我的目标是创建一个新列,其中所有“a”行获得第一个向量值,所有“B”行获得第二个值,依此类推 我已经试过了: values <- c("G", "H", "J", "K") dat$col2 <- values[dat$co

我对R还是个新手,目前仍在使用data.frame。 我有一个字符列,不同的组在数字上有所不同。例如,前七行为“A”,后五行为“B”,依此类推。现在我有一个向量,它的长度等于组的总数。我的目标是创建一个新列,其中所有“a”行获得第一个向量值,所有“B”行获得第二个值,依此类推

我已经试过了:

values <- c("G", "H", "J", "K")
dat$col2 <- values[dat$col1]

值我认为您只是在寻找一个
ifelse


group.size在
第一列中有字符值。不能在此处使用字符值为向量编制索引。使用
match
创建索引

df$second_column <- c("A","B")[match(df$first_column, unique(df$first_column))]
df

#   first_column second_column
#1       value_1             A
#2       value_1             A
#3       value_1             A
#4       value_1             A
#5       value_1             A
#6       value_1             A
#7       value_2             B
#8       value_2             B
#9       value_2             B
#10      value_2             B
#11      value_2             B
#12      value_2             B
#13      value_2             B

df$second\u column您是使用相同的数据帧和来自该链接的代码并获得
NA
,还是将其应用于其他数据帧?我将其应用于另一个数据帧,它相当大。因此,每次我获得一组类似类型的新数据时,手动执行该操作太复杂了。我注意到,即使在更新之后,如果“col1”是链接中的数字列,它仍然有效。但同时,在这种情况下,它也不再起作用了。你能提供你正在应用它的数据集的样本吗,这样我们就可以重现你所面临的问题。我添加了一个编辑和一个可重现的例子
df$second_column <- c("A","B")[match(df$first_column, unique(df$first_column))]
df

#   first_column second_column
#1       value_1             A
#2       value_1             A
#3       value_1             A
#4       value_1             A
#5       value_1             A
#6       value_1             A
#7       value_2             B
#8       value_2             B
#9       value_2             B
#10      value_2             B
#11      value_2             B
#12      value_2             B
#13      value_2             B