我在R中有一个大的data.table,其中有几列带有美元值.在另一栏中,我有一个通胀调整数字.我试图找出如何用它乘以通胀调整列来更新我的每个货币列.假设我有数据:
DT <- data.table(id=1:1000,year=round(runif(1000)*10),
inc1 = runif(1000), inc2 = runif(1000), inc3 = runif(1000),
deflator = rnorm(1000))
Run Code Online (Sandbox Code Playgroud)
给出输出:
id year inc1 inc2 inc3 deflator
1: 1 8 0.4754808 0.6678110 0.41533976 -0.64126988
2: 2 2 0.6568746 0.7765634 0.70616373 0.39687915
3: 3 6 0.8192947 0.9236281 0.90002534 -0.69545700
4: 4 4 0.7781929 0.1624902 0.17565790 0.05263055
5: 5 7 0.6232520 0.8024975 0.86449836 0.70781887
---
996: 996 2 0.9676383 0.2238746 0.19822000 0.78564836
997: 997 9 0.9877410 0.5783748 0.57497438 -1.63365223
998: 998 8 0.2220570 0.6500632 0.19814932 1.00260174 …Run Code Online (Sandbox Code Playgroud) 我使用以下命令从R导出数据:
write.table(output,file="data.raw", na "-9999",sep="\t",row.names=F,col.names=F)
Run Code Online (Sandbox Code Playgroud)
正确导出我的数据,但它将所有逻辑变量导出为TRUE和FALSE.
我需要将数据读入另一个只能处理数值的程序.有没有一种有效的方法在导出期间将这些转换为数字1和0?我有大量的数字变量,所以我希望自动遍历data.table中的所有变量
我意识到我可以在输出数据上运行简单的sed脚本,但看起来这应该是从R直接做的.
或者,我的输出对象是data.table.有没有一种有效的方法将data.table中的所有逻辑变量转换为数字变量?
如果它有用,这里有一些代码来生成一个带有逻辑变量的data.table(它不是大量的逻辑变量,但足以在示例代码上使用):
DT = data.table(cbind(1:100,rnorm(100)>0)
DT[ ,V3:= V2==1 ]
DT[ ,V4:= V2!=1 ]
Run Code Online (Sandbox Code Playgroud)
这似乎是一个简单的问题,但它让我失望,所以谢谢你的帮助!