R | 关于“二进列运算符中有非数值参数”的解决办法 | 修改数据框dataframe中单列的数据类型

10 篇文章 0 订阅

之前写过一篇运用R时报错的文章R: Error in FUN(left, right) : 二进列运算符中有非数值参数,报错内容为:

Error in FUN(left, right) : 二进列运算符中有非数值参数

原因是导入的“.csv”文件数据列具有非参数类型,进行非参数转换之后问题解决。

然而,在利用R metID包时,又出现了类似的报错内容,如下:

错误: BiocParallel errors
  element index: 1, 2, 3, 4, 5, 6, ...
  first error: 二进列运算符中有非数值参数

在这里插入图片描述
图1 报错内容

总结而言,依旧是数据参数的问题。利用“str()”检查导入的数据列表:
在这里插入图片描述
图2 利用str()验证数据类型

结果表明,与原来运行正常的数据相比,新的数据列表中,RT”一列从原来的“num”变成了“chr”类型,导致运行报错。

解决办法:
知道原因之后,只需要将RT”一列从“str”变成“num”类型即可。

具体操作:
RT”一列从数据集中提取出来转化为参数类型,并再次赋值给这一列即可。代码如下:

msDatabase@RT <- as.numeric(msDatabase@RT)

注:根据数据类型不同,提取数据时也会用“$”符号。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 在 Pandas ,你可以使用 `DataFrame.select_dtypes` 函数来提取类型为数值类型的数据列。你可以这样做: ``` numeric_cols = df.select_dtypes(include=['float', 'int']).columns ``` 这样你就可以得到一个包含数值类型数据列名称的列表了。 如果你想提取所有的数值类型,包括布尔型和时间序列,你可以使用 `np.number` 类型: ``` numeric_cols = df.select_dtypes(include=np.number).columns ``` 这样就能提取出所有的数值类型数据列了。 ### 回答2: 要提取DataFrame类型为数值类型的数据列的列名,可以使用dtypes属性来检查每一列的数据类型,并通过条件筛选出数值类型的列名。 具体步骤如下: 1. 使用dtypes属性获取DataFrame每一列的数据类型。 2. 使用条件筛选出数值类型的列名。 以下是示例代码: ```python import pandas as pd # 创建示例DataFrame df = pd.DataFrame({'A': [1, 2, 3], 'B': [1.1, 2.2, 3.3], 'C': ['a', 'b', 'c'], 'D': [True, False, True]}) # 使用dtypes属性获取每一列的数据类型 column_types = df.dtypes # 使用条件筛选出数值类型的列名 numeric_columns = column_types[column_types == 'int64'].index.tolist() print(numeric_columns) ``` 输出结果为:['A'] 以上代码,创建了一个示例DataFrame,其包含了不同类型的列。通过调用`df.dtypes`获取到每一列的数据类型,并将结果存储在`column_types`。然后,使用条件筛选出数值类型(这里使用'int64'表示整数类型)的列名,并将结果转换成列表形式存储在`numeric_columns`。最后,打印出`numeric_columns`的值。根据示例DataFrame,输出结果为['A'],表示'A'列是数值类型的列。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值