根据R中的行号复制观察值

根据R中的行号复制观察值,r,R,我的数据帧(x)是: 我想创建一列c3,根据c2中的行号复制c1中的观测值: c1 c2 c3 Aa 02 Bb Bb 03 Cc Cc 02 Bb 我正在使用base R,无法下载软件包 谢谢大家! 使用此数据: x = read.table(text = 'c1 c2 Aa 02 Bb 03 Cc 02 ', header = T) 这里有一个解决方案: x$c3 = x$c1[as.numeric(as.character(x$c2))] # c1 c2 c3 #

我的数据帧(x)是:

我想创建一列c3,根据c2中的行号复制c1中的观测值:

c1 c2 c3 

Aa 02 Bb 

Bb 03 Cc

Cc 02 Bb
我正在使用base R,无法下载软件包

谢谢大家!

使用此数据:

x = read.table(text = 'c1 c2 
Aa 02 
Bb 03 
Cc 02 ', header = T)
这里有一个解决方案:

x$c3 = x$c1[as.numeric(as.character(x$c2))]
#   c1 c2 c3
# 1 Aa  2 Bb
# 2 Bb  3 Cc
# 3 Cc  2 Bb

as.numeric(as.character())
是将内容转换为数字的一种非常安全的方法——无论源代码是
因子还是
字符(或者已经是
数字
)。不过,如果您查看该类,
class(x$c2)
您可以更明智地了解到底需要什么转换。

不幸的是,它不起作用。。。我得到了c1的第一行的副本。假设更少,
x$c3=x$c1[as.numeric(as.character(x$c2))]
应该可以工作。
x$c3 = x$c1[as.numeric(as.character(x$c2))]
#   c1 c2 c3
# 1 Aa  2 Bb
# 2 Bb  3 Cc
# 3 Cc  2 Bb