1
A
回答
5
这里有一些解决方案。为了重现我们假设这个定义为Data
:
Data <- data.frame(x = 1)
1)反复变换尝试的反复变换:
transform(transform(Data, m = x), d = m, c = m*2)
2)内或使用within
:
within(Data, { m <- x; d <- m; c <- m*2 })
3)my.tra nsform还有一个支持这种行为的替代变换here。
my.transform(Data, m = x, d = m, c = m*2)
请注意,这里是唯一的答案,它支持按顺序设置变量,例如,
my.transform(Data, d = m, c = m*2, m = x)
4)dplyr ::变异在dplyr包mutate
也支持这一点:
library(dplyr)
mutate(Data, m = x, d = m, c = m*2)
+0
谢谢,这是一个相当完整的答案。 – muyueh
1
不,如果你的意思是你在当前transform()
通话创建一个变量:
df <- data.frame(x = 1:10)
df2 <- transform(df, m = x, d = m, c = m * 2)
> df <- data.frame(x = 1:10)
> df2 <- transform(df, m = x, d = m, c = m * 2)
Error in eval(expr, envir, enclos) : object 'm' not found
显而易见解决办法是做两个transform()
电话:
df2 <- transform(df, m = x)
df2 <- transform(df2, d = m, c = m * 2)
head(df2)
> head(df2)
x m d c
1 1 1 1 2
2 2 2 2 4
3 3 3 3 6
4 4 4 4 8
5 5 5 5 10
6 6 6 6 12
或嵌套它们
df3 <- transform(transform(df, m = x), d = m, c = m * 2)
> head(df3)
x m d c
1 1 1 1 2
2 2 2 2 4
3 3 3 3 6
4 4 4 4 8
5 5 5 5 10
6 6 6 6 12
另一种方法是within()
,它可以做你想做的,但稍显不足的用户友好:
df4 <- within(df, {
m <- x
d <- m
c <- m * 2
})
> head(df4)
x c d m
1 1 2 1 1
2 2 4 2 2
3 3 6 3 3
4 4 8 4 4
5 5 10 5 5
6 6 12 6 6
这样做的一个特点是你没有任何对新变量排序的控制。
请注意,within()
的工作原理是在包含df
变量的环境中评估整个表达式({ ... }
中的内容)。因此,m
在该环境中可用,因为它是在表达式的第一行中创建的。
相关问题
- 1. 在FitNesse中,变量是否可以用其他变量来定义?
- 2. 在vb.net中,是否有其他变量?
- 3. 是否可以在Storyboard中引用其他Storyboard?
- 4. 是否可以将其他类型变量引入超类约束?
- 5. 在R中使用Amelia包是否可以用其他变量对变量进行变形?
- 6. 是否可以在postgres sql命令中引用环境变量?
- 7. 是否有一个变量可以存储相同类型的其他变量?
- 8. 我可以在其他变量来定义变量以下/ XCSS
- 9. C#引用变量,是否使一个null使其他空?
- 10. 是否可以使用extern访问Objective c中其他类的变量?
- 11. XSLT:节点是否可以作为变量在其他地方使用?
- 12. 复数变量(变量名与其他变量的变化)是否可能?
- 13. 是否可以引用其他类的MainWindow.cs?
- 14. 是否可以引用未知数量的变量?
- 15. 是否可以在doT.js模板引擎中创建变量?
- 16. 是否有可能引用变量
- 17. 我可以使用其他变量访问类变量吗?
- 18. 我们可以在其他配置中使用php.ini变量
- 19. 其他EC2用户是否可以嗅探我的流量?
- 20. 是否可以在其他应用程序中使用git?
- 21. 是否有可能从bash中的其他变量构建变量名?
- 22. 可选的LESS mixin变量是否可以引用另一个变量
- 23. LLVM:找出变量是否是其他变量的函数
- 24. 是否可以在TSQL脚本文件中引用其他脚本?
- 25. 是否可以在SASS中的变量中嵌套变量?
- 26. 是否可以使用插值字符串引用变量?
- 27. 是否可以在乐器中加载其他应用程序?
- 28. 是否可以在LinqToSql中使用Soundex(或其他SQL函数)?
- 29. 是否可以在其他语言中使用LINQ to SQL?
- 30. 是否可以在其他绑定中使用绑定?
什么是'Data','x'等在这里?一个简短的答案是:不,你不能在'transform'中引用'm' – gagolews
为什么你不只是在样本数据上测试你的代码并得到你的答案?大卫阿伦堡 –
,我做了,我无法弄清楚如何使它工作。 谢谢@gagolews,那是我正在寻找的答案。 – muyueh