根据R中的动态值从数据框中选择列

乔希布

我一直在努力解决这个问题,并确定一定有一种有效的方法可以在R中做到这一点,而无需编写for循环。任何建议,不胜感激!

我想在数据框中创建一个新列,其中包含该数据框中现有列的值,但是要动态指定其值被选择的列。一个例子将有助于阐明:

> mydata <- head(mtcars)
> mydata
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
> myquery <- c("cyl","cyl","gear","gear","carb", "carb")

在这一点上,我想知道是否有一个简单的R函数,它将myquery为的每一行选择column的值,mydata换句话说:

f(mydata, myquery)
6 6 4 3 2 1

如果有人知道一种简单高效的书写方式f,请在此先感谢您,在此感谢您的宝贵时间。

弗里克先生

您可以data.frame使用矩阵索引a以实现该行为

dd<-head(mtcars)
myquery <- c("cyl","cyl","gear","gear","carb", "carb")
dd[cbind(seq_along(myquery), match(myquery, names(dd)))]
# [1] 6 6 4 3 2 1

矩阵的第一列是行,使用这种方法有括号没有逗号,当你做一个正常的喜欢当第二个是列(和记[,]子集。在这里,我转换的myqeury值来使用他们的数字列索引match等等矩阵的两列都是相同的类型(如果必须),如果使用行名来对行进行索引,则还可以使用字符矩阵。

dd[cbind(rownames(dd), myquery)]
# [1] 6 6 4 3 2 1

也可以。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据R中的动态值从数据框中选择列

来自分类Dev

从R数据框列中选择值

来自分类Dev

根据另一列中的值从数据框中的列中选择

来自分类Dev

根据列值从列表中选择数据框

来自分类Dev

根据最大列值从列表中选择数据框

来自分类Dev

根据一行中的值在r中的数据框中选择行

来自分类Dev

根据列表或另一列中的值在Pandas数据框中动态选择列

来自分类Dev

从数据框中的列中选择特定值

来自分类Dev

根据其他数据框从数据框中选择值

来自分类Dev

根据其他数据框中具有最小值/最大值的列从pandas数据框中选择值

来自分类Dev

根据pandas数据框中的多个列值选择行

来自分类Dev

根据数据框中的列选择最新值

来自分类Dev

根据R中数据框列的变量名称选择值

来自分类Dev

根据R中数据框列的变量名称选择值

来自分类Dev

R:如何根据特定规则从数据框中选择数据并将数据作为新列添加到现有数据框中

来自分类Dev

如何在R中动态选择数据框中的列

来自分类Dev

根据列条件从熊猫数据框中选择列

来自分类Dev

根据列值选择数据框的行

来自分类Dev

根据重复的值从分组的数据框中选择行

来自分类Dev

根据非空列数从数据框中选择行

来自分类Dev

根据行条件从熊猫数据框中选择列

来自分类Dev

根据列中的值返回数据框的行-R

来自分类Dev

如何根据在另一列中选择的行数据从列中收集值?

来自分类Dev

根据 R 中的时间和值从向量中选择值

来自分类Dev

从数据框中选择每行的前N个列值

来自分类Dev

在数据框中选择与列值部分匹配的行

来自分类Dev

在数据框中选择性地添加列的值

来自分类Dev

在数据框中选择数组作为列值

来自分类Dev

产生动态/多个输入框以根据Shiny R中的用户选择收集数据

Related 相关文章

  1. 1

    根据R中的动态值从数据框中选择列

  2. 2

    从R数据框列中选择值

  3. 3

    根据另一列中的值从数据框中的列中选择

  4. 4

    根据列值从列表中选择数据框

  5. 5

    根据最大列值从列表中选择数据框

  6. 6

    根据一行中的值在r中的数据框中选择行

  7. 7

    根据列表或另一列中的值在Pandas数据框中动态选择列

  8. 8

    从数据框中的列中选择特定值

  9. 9

    根据其他数据框从数据框中选择值

  10. 10

    根据其他数据框中具有最小值/最大值的列从pandas数据框中选择值

  11. 11

    根据pandas数据框中的多个列值选择行

  12. 12

    根据数据框中的列选择最新值

  13. 13

    根据R中数据框列的变量名称选择值

  14. 14

    根据R中数据框列的变量名称选择值

  15. 15

    R:如何根据特定规则从数据框中选择数据并将数据作为新列添加到现有数据框中

  16. 16

    如何在R中动态选择数据框中的列

  17. 17

    根据列条件从熊猫数据框中选择列

  18. 18

    根据列值选择数据框的行

  19. 19

    根据重复的值从分组的数据框中选择行

  20. 20

    根据非空列数从数据框中选择行

  21. 21

    根据行条件从熊猫数据框中选择列

  22. 22

    根据列中的值返回数据框的行-R

  23. 23

    如何根据在另一列中选择的行数据从列中收集值?

  24. 24

    根据 R 中的时间和值从向量中选择值

  25. 25

    从数据框中选择每行的前N个列值

  26. 26

    在数据框中选择与列值部分匹配的行

  27. 27

    在数据框中选择性地添加列的值

  28. 28

    在数据框中选择数组作为列值

  29. 29

    产生动态/多个输入框以根据Shiny R中的用户选择收集数据

热门标签

归档