根据R中的行号复制观察值
我的数据帧(x)是: 我想创建一列c3,根据c2中的行号复制c1中的观测值:根据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 #
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