首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用来自另一个数据框的值将函数应用于数据框的每一列

使用来自另一个数据框的值将函数应用于数据框的每一列
EN

Stack Overflow用户
提问于 2013-06-13 10:13:15
回答 1查看 1.8K关注 0票数 1

我有一个数据框,其中包含一组变量的观察值:

代码语言:javascript
运行
复制
mydata <-  data.frame(Sample = c("A", "B", "C", "D"), 
  V1 = c(25, 27, 18, 29),
  V2 = c(32, 45, 28, 30),
  V3 = c(16, 32, 29, 22),
  V4 = c(27, 29, 28, 32))

我需要根据特定于变量的常量E来转换每列中的数据,该常量存储在另一个数据框中:

代码语言:javascript
运行
复制
e <- data.frame(Var = c("V1", "V3", "V2", "V4"), E = c(2, 1.4, 1.7, 1.8))

我想要一个新的数据框,其中包含基于e中每个变量的正确常量的mydata中数据的转换值,其中新值为

代码语言:javascript
运行
复制
=1/E^(value in mydata)

我知道如何使用lapply遍历mydata中的每一列,但我不知道如何根据变量名指定每列的E值必须来自e。( e中的值与mydata中的列的顺序不同,在某些情况下,e中会有未使用的行,即E值表示mydata中不存在的变量。

如何根据变量名和不同数据框中E的相应值将数据转换应用到一个数据框的每一列?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-13 10:30:49

下面是我将如何处理它。我不会循环遍历列,而是循环遍历列名:

代码语言:javascript
运行
复制
sapply(colnames(mydata)[-1], function(x) 1/(e$E[e$Var == x]^mydata[,x]))

#                V1           V2           V3           V4
# [1,] 2.980232e-08 4.223131e-08 4.591467e-03 1.281275e-07
# [2,] 7.450581e-09 4.263817e-11 2.108157e-05 3.954553e-08
# [3,] 3.814697e-06 3.527201e-07 5.784782e-05 7.118195e-08
# [4,] 1.862645e-09 1.220485e-07 6.097941e-04 6.780783e-09

如果你在找别的东西,请告诉我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17078163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档