如何在R中对数据集进行二分

如何在R中对数据集进行二分,r,R,我是R的新手,正在尝试对以下数据集的第三维(10x10)进行二分: 看起来我应该能够像这样对行和列运行两个循环,但不起作用: for (k in 1:10) { replace(k,1, k>1=1) } 这是我第二天试图弄明白R,除了一点STATA经验外,没有任何背景。非常感谢您的建议。由于数据是一个数组,我会在使用函数之前将其强制为data.frame。我不确定这是否是您最终想要的输出格式 # Coerce to a `data.frame` df <- as.data.fr

我是R的新手,正在尝试对以下数据集的第三维(10x10)进行二分:

看起来我应该能够像这样对行和列运行两个循环,但不起作用:

for (k in 1:10)
{ replace(k,1, k>1=1) }

这是我第二天试图弄明白R,除了一点STATA经验外,没有任何背景。非常感谢您的建议。

由于数据是一个数组,我会在使用函数之前将其强制为
data.frame
。我不确定这是否是您最终想要的输出格式

# Coerce to a `data.frame`
df <- as.data.frame(my_data)

# Apply a function to the columns that makes the variables binary (meaning if they are positive, its a 1, else # a 0). This is what `ifesle` does. For more info read: ?ifelse

res = apply(df, 2, function(x) ifelse(x > 0, 1, 0))
       ROMUL.like1 BONAVEN.like1 AMBROSE.like1 BERTH.like1 PETER.like1 LOUIS.like1 VICTOR.like1
ROMUL             0             0             1           0           1           0            0
BONAVEN           1             0             0           0           0           0            1
AMBROSE           1             1             0           0           0           0            0
BERTH             0             0             0           0           1           1            0
PETER             0             0             0           1           0           0            0
LOUIS             1             0             0           1           0           0            0
#强制使用`data.frame`
df(0,1,0))
罗穆尔。像波纳文。像安布罗斯。像伯斯。像彼得。像路易斯。像维克托。像
罗穆尔0 1 0 1 0 0
博纳文1 0 0 0 1
安布罗斯11000
泊位0 0 1 1 0
彼得0 0 1 0 0 0 0
路易100 100

这看起来像是家庭作业。如果你能多说一点你对“二分法”的理解,这可能会对我们有所帮助。您期望的输出是什么?