我通过一系列看起来像下面代码的apply()调用来运行大量具有可变维度的数据框。
df1 = t(data.frame('test'=c(0,0,1,0)))
df1 = apply(df1,2,function(j){sub(0,'00',j)})
df1 = apply(df1,2,function(j){sub(1,'01',j)})
df1 = apply(df1,2,function(j){sub(2,'10',j)})
df1
在数据帧大小为1xn的极少数情况下,第一次apply()调用将导致它返回向量数据类型并导致后续应用时出错。请注意,1xn数据帧似乎不会出现此问题(在上面的代码中,删除t())。有没有快速/干净的方法来阻止apply()返回向量或其他有效的解决方法来解决这个问题?
我认为当1xn但没有nx1数据帧用作输入时,以下内容可能有用。
df1 = apply(df1,1,function(j){sub(0,'00',j)})
df1 = apply(df1,2,function(j){sub(1,'01',j)})
df1 = apply(df1,2,function(j){sub(2,'10',j)})
t(ret)
答案 0 :(得分:0)
以下保留原始数据结构。它是什么寻找的?
df = data.frame('test'=c(0,0,1,0))
df[] <- apply(df,2,function(j){sub(0,'00',j)})
df[] <- apply(df,2,function(j){sub(1,'01',j)})
df[] <- apply(df,2,function(j){sub(2,'10',j)})
df
# test
# 1 00
# 2 00
# 3 01
# 4 00
df1 = t(data.frame('test'=c(0,0,1,0)))
df1[] <- apply(df1,2,function(j){sub(0,'00',j)})
df1[] <- apply(df1,2,function(j){sub(1,'01',j)})
df1[] <- apply(df1,2,function(j){sub(2,'10',j)})
df1
# [,1] [,2] [,3] [,4]
# test "00" "00" "01" "00"