根据其他变量的值创建新列

Vin*_*woo 4 r dataframe

我的数据看起来像这样:

一组10个字符变量

Char<-c("A","B","C","D","E","F","G","H","I","J")
Run Code Online (Sandbox Code Playgroud)

还有一个看起来像这样的数据框

Col1<-seq(1:25)
Col2<-c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5)
DF<-data.frame(Col1,Col2)
Run Code Online (Sandbox Code Playgroud)

我想要做的是在数据框中添加第三列,逻辑是1 = A,2 = B,3 = C等等.所以最终的结果是

Col3<-c("A","A","A","A","A","B","B","B","B","B","C","C","C","C","C","D","D","D","D","D","E","E","E","E","E")
DF<-data.frame(Col1,Col2,Col3)
Run Code Online (Sandbox Code Playgroud)

对于这个简单的例子,我可以像这个问题一样简单替换: 根据另一列中的4个值创建新列

但是我的实际数据集比这个简单的例子更大,变量更大,因此不可能像上面的答案那样写出等价物.

所以我希望有一些代码可以应用于更大的数据帧.也许是通过Col2的所有值循环并将它们与Char的位置相匹配的东西.

1=Char[1]  2=Char[2] 3=Char[3]...... for the entire length of Col2
Run Code Online (Sandbox Code Playgroud)

或者任何其他可以扩展到长期怪异数据帧的方式

Jar*_*ett 5

# Values that Col2 might have taken
levels = c(1, 2, 3, 4, 5)

# Labels for the levels in same order as levels
labels = c('A', 'B', 'C', 'D', 'E')

DF$Col3 <- factor(DF$Col2, levels = levels, labels = labels)
Run Code Online (Sandbox Code Playgroud)