gpt4 book ai didi

r - 数据表 - 从另一列按名称选择列的值

转载 作者:行者123 更新时间:2023-12-04 11:29:19 28 4
gpt4 key购买 nike

我有一个数据表,其中包含许多包含值的列。我还有另一列,它定义了我需要选择哪些列的值。我很难找到一种方法来做到这一点。

这是一个简单的例子。

> d <- data.table(
value.1 = c("one", "uno", "1"),
value.2 = c("two", "dos", "2"),
name.of.col = c("value.1","value.2","value.1"))

> d
value.1 value.2 name.of.col
1: one two value.1
2: uno dos value.2
3: 1 2 value.1

我想添加一列“value.of.col”,其中包含由“name.of.col”指定的列的值。
> d
value.1 value.2 name.of.col value.of.col
1: one two value.1 one
2: uno dos value.2 dos
3: 1 2 value.1 1

最佳答案

另外一个选项:

d[ , value.of.col := diag(as.matrix(.SD)), .SDcols = d[ , name.of.col]]
> d
value.1 value.2 name.of.col value.of.col
1: one two value.1 one
2: uno dos value.2 dos
3: 1 2 value.1 1

编辑 添加更快的解决方案:
d[ , value.of.col :=
melt(d,id.vars='name.of.col')[name.of.col==variable, value]]

关于r - 数据表 - 从另一列按名称选择列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21466068/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com