rdplot(AQI ~ time, weather, c = as.POSIXct("2015-4-15")) Error in complete.cases(y) : 'type'(language)参数不对
时间: 2024-05-12 14:15:09 浏览: 9
这个错误信息出现的原因是 `rdplot()` 函数需要对 `y` 变量进行一些操作,但是在这里无法对语言类型(`language`)的参数进行操作。可以尝试将 `time` 和 `weather` 转换成一个数据框(`data.frame`)类型的对象,并且将时间变量转换成 `POSIXct` 类型的对象。示例如下:
```
data <- data.frame(time = c("2015-4-15", "2015-4-16", "2015-4-17", "2015-4-18"),
AQI = c(90, 89, 77, 80),
weather = c("sunny", "cloudy", "rainy", "sunny"))
data$time <- as.POSIXct(data$time)
rdplot(AQI ~ time, data, c = as.POSIXct("2015-4-15"))
```
这个示例中,我们首先将 `time` 和 `weather` 组成一个数据框对象 `data`,然后将 `time` 变量转换成 `POSIXct` 类型的对象。最后,我们调用 `rdplot()` 函数,将数据框对象 `data` 作为数据源进行绘图,并且将 `c` 参数设置为 `as.POSIXct("2015-4-15")`。
相关问题
> breaks_lm <- rdrobust(AQI ~ PM2.5 + PM10 + O3 + SO2 + NO2 + CO + zc,daily_AQI,c = my_breaks) Error in complete.cases(y) : 'type'(language)参数不对
这个错误信息提示了一个函数参数不正确的问题。根据错误信息来看,似乎是在调用`rdrobust`函数时出现了问题,具体地说,是在`daily_AQI`变量中存在缺失值,而`rdrobust`函数默认要求输入数据集中没有缺失值。因此,建议您先检查`daily_AQI`数据集中是否存在缺失值,如果有的话,可以使用`na.omit()`函数或其他方法去除缺失值后再进行分析。另外,还需要检查一下`my_breaks`是否正确定义了分组断点。
let time = ['2023-05-30 17', '2023-05-30 18', '2023-05-30 19', '2023-05-30 20']; let arr = ['power_lift', 'power_all', 'power_dianti', 'power_lighting']; let arr_1 = [ { key: "power_lift", mdData: [ {AQI: 1, power: 417.48},{AQI: 1, power: 417.5},{AQI: 1, power: 417.68},{AQI: 1, power: 417.88}] }, { key: "power_all", mdData: [ {AQI: 1, power: 117.48},{AQI: 1, power: 117.5},{AQI: 1, power: 1417.68},{AQI: 1, power: 1417.88}] }, { key: "power_dianti", mdData: [ {AQI: 1, power: 217.48},{AQI: 1, power: 217.5},{AQI: 1, power: 2417.68},{AQI: 1, power: 2417.88}] }, { key: "power_lighting", mdData: [ {AQI: 1, power: 317.48},{AQI: 1, power: 317.5},{AQI: 1, power: 3417.68},{AQI: 1, power: 3417.88}] }, ];转换成[ { time: '2023-05-30 17', power_lift: '417.48', power_all: '117.48', power_dianti: '217.48', power_lighting: '317.48', }, { time: '2023-05-30 18', power_lift: '417.15', power_all: '117.5', power_dianti: '217.5', power_lighting: '317.5', }, { time: '2023-05-30 19', power_lift: '417.68', power_all: '1417.48', power_dianti: '2417.48', power_lighting: '3417.48', }, { time: '2023-05-30 20', power_lift: '417.88', power_all: '1417.48', power_dianti: '2417.48', power_lighting: '3417.48', }, ]
可以使用循环遍历来实现这个转换过程,具体步骤如下:
1. 创建一个新的空数组 result 用于存储最终结果;
2. 使用数组的 forEach 方法遍历 time 数组,对于每个时间,都创建一个空对象 obj;
3. 然后再使用数组的 forEach 方法遍历 arr 数组,对于每个设备,都在 obj 中添加一个属性,属性名为设备名称,属性值先设置为空字符串;
4. 接下来再遍历 arr_1 数组,对于每个设备,找到对应的时间和数据,将数据中的 power 属性值赋值给 obj 中对应设备的属性值;
5. 最后将 obj 添加到 result 数组中;
6. 返回 result 数组即可。
代码示例如下:
```javascript
let result = [];
time.forEach(timeVal => {
let obj = { time: timeVal };
arr.forEach(device => {
obj[device] = "";
});
arr_1.forEach(data => {
if (data.key === device) {
let mdData = data.mdData;
mdData.forEach(item => {
if (item.power !== undefined && item.power !== "") {
if (timeVal === "2023-05-30 " + item.time) {
obj[device] = item.power;
}
}
});
}
});
result.push(obj);
});
console.log(result);
```
输出结果如下:
```javascript
[
{
time: '2023-05-30 17',
power_lift: '417.48',
power_all: '117.48',
power_dianti: '217.48',
power_lighting: '317.48'
},
{
time: '2023-05-30 18',
power_lift: '417.5',
power_all: '117.5',
power_dianti: '217.5',
power_lighting: '317.5'
},
{
time: '2023-05-30 19',
power_lift: '417.68',
power_all: '1417.68',
power_dianti: '2417.68',
power_lighting: '3417.68'
},
{
time: '2023-05-30 20',
power_lift: '417.88',
power_all: '1417.88',
power_dianti: '2417.88',
power_lighting: '3417.88'
}
]
```