Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R语言中,使用变量名而不是列值将列转换为二进制_R_Binary - Fatal编程技术网

在R语言中,使用变量名而不是列值将列转换为二进制

在R语言中,使用变量名而不是列值将列转换为二进制,r,binary,R,Binary,我的数据集中有一组分类列,我将把它们转换成二进制变量(1/0) 其中有很多,目前,我已经调用了列名和值,并将其传输到word文档中,然后在代码中直接使用列值: binarydata<- rawdata3 my_cols = c(8:38, 48:52, 59:69, 96:118, 120:132, 145:148, 154:170, 223:330) binarydata[my_cols] <- as.integer(!is.na(binarydata[my_cols])) b

我的数据集中有一组分类列,我将把它们转换成二进制变量(1/0)

其中有很多,目前,我已经调用了列名和值,并将其传输到word文档中,然后在代码中直接使用列值:

binarydata<- rawdata3
my_cols = c(8:38, 48:52, 59:69, 96:118, 120:132, 145:148, 154:170, 223:330) 
binarydata[my_cols] <- as.integer(!is.na(binarydata[my_cols]))

binarydata我们可以使用
colnames
来子集
colnames
names
更通用,因为它也可以与
矩阵一起使用

nm1 <- colnames(binarydata)[my_cols]
binarydata[nm1] <- lapply(binarydata[nm1], function(x) +(!is.na(x)))

这也可以工作,但由于没有共享数据,因此未对其进行测试:

#Code
binarydata<- rawdata3
my_cols = c(8:38, 48:52, 59:69, 96:118, 120:132, 145:148, 154:170, 223:330) 
mynames <- names(binarydata)[my_cols]
binarydata[,mynames] <- as.integer(!is.na(binarydata[,mynames]))
#代码

如果没有大量的数据,很难给出有用的答案。我想已经有一些帖子可以回答你的问题了,但是如果你不知道你的数据里有什么,就很难给你指出来。我不确定我是否理解你的问题。您已经有了
my_cols
作为数字,现在您想要它们的等效列名并在代码中使用它吗?为什么?以防列号发生变化。我不想再次经历查找列号的过程。这有什么作用?如果有值,它会变为1,如果没有值,它会变为0吗?@Pre-Yes,
转换为真->假,反之亦然。
+
强制执行TRUE->1和FALSE->0此操作非常有效,谢谢
#Code
binarydata<- rawdata3
my_cols = c(8:38, 48:52, 59:69, 96:118, 120:132, 145:148, 154:170, 223:330) 
mynames <- names(binarydata)[my_cols]
binarydata[,mynames] <- as.integer(!is.na(binarydata[,mynames]))