如何使用 Lubridate 从 YYYY-MM-DD HH:MM:SS 格式创建新列“月”?

问题描述

我正在尝试使用 lubridate 从以下格式创建一个仅包含月份的新列:

2020-01-01 00:00:00 yyyy-mm-dd hh:mm:ss

提前致谢。

我的表名为“weather4”,到目前为止我有以下内容

weather4 %>%

  • mutate(Year = year(weather4$valid),
  •        Month = month(weather4$valid),
  •        Day = day(weather4$valid))
    

image of output generated

Original Data

非常感谢您提前

解决方法

import React,{ useState } from 'react'; import { StyleSheet,Text,View,FlatList,Alert,Button } from 'react-native'; import Header from './components/header'; import Workouts from './components/workouts'; import AddWorkout from './components/addWorkout'; export default function App() { const [workout,setWorkout] = useState(false); const [workouts,setWorkouts] = useState([ { name: 'Pushups',key: '1',sets: '3',reps: '20' },{ name: 'Test',key: '2',]); const [currentWorkout,setCurrentWorkout] = useState(workouts[0]); const [currentSets,setCurrentSets] = useState(3) const [dummyWorkouts,setDummyWorkouts] = useState(); const pressHandler = (key) => { setWorkouts((prevWorkouts) => { return prevWorkouts.filter(workout => workout.key != key); }) } const submitHandler = (text) => { if(text.length > 0){ if(text.length <= 40){ setWorkouts((workouts) => { return [ { name: text,key: Math.random().toString(),reps: '10',sets: '3' },...workouts ] }) }else {Alert.alert('Whoops!',"You entered over 40 characters! Shorten it up a bit!",[{text: 'Close '}])} }else {Alert.alert('Whoops!',"You haven't entered anything!",[{text: 'Close '}])} } if(workout == false){ return ( <View style={styles.container}> <Header /> <View style={styles.WorkoutButton}> <Button title='START' color='white' onPress={()=>{ if(workouts.includes(workouts[0])){ setDummyWorkouts([...workouts]) setWorkout(true) }else{Alert.alert('Whoops!',"No workouts detected!",[{text: 'Close '}])} }} /> </View> <View style={styles.content}> <AddWorkout submitHandler={(val) => {submitHandler}}/> <View style={styles.list}> <FlatList data={workouts} renderItem={({ item }) => ( <Workouts item={item} pressHandler={pressHandler} /> )} /> </View> </View> </View> );}else if (workout == true && workouts.includes(workouts[0])){ return( <View style={styles.container}> <Header /> <View style={styles.WorkoutButton}> <Button title='-' color='white' onPress={() => { setCurrentSets(currentSets-1) if(currentSets == 1){ if(dummyWorkouts.length > 1){ setCurrentWorkout(dummyWorkouts[1]) setCurrentSets(dummyWorkouts[1].sets) var index = dummyWorkouts.indexOf(dummyWorkouts[0]) setDummyWorkouts(dummyWorkouts.splice(index,1)) //delete workout }else{ setDummyWorkouts(workouts) setCurrentWorkout(workouts[0]) setCurrentSets(workouts[0].sets) setWorkout(false) } } }} /> </View> <View style={styles.WorkoutCard}> <Text style={styles.Workout}> {currentWorkout.name} </Text> <Text style={styles.Sets}> Sets Left {'\n'} {currentSets} </Text> <Text style={styles.Reps}> Reps {'\n'} {currentWorkout.reps} </Text> </View> </View> );}else{ setWorkout(false) Alert.alert('Whoops!',[{text: 'Close '}]) } } //Style Sheet const styles = StyleSheet.create({ container: { flex: 1,backgroundColor: '#3B3B3B',},content: { padding: 60,flex: 1,list: { marginTop: 20,flex:1,text: { color: 'white',WorkoutButton: { backgroundColor: 'black',left: 140,bottom: 52,marginHorizontal: 150,borderRadius: 15,fontWeight: 'bold',WorkoutCard: { backgroundColor: 'crimson',height: 600,width: 300,marginTop: 50,alignSelf: 'center',borderRadius: 50,Workout: { fontSize: 50,fontWeight: '600',color: 'white',textAlign: 'center',Sets: { fontSize: 50,fontWeight: '400',top: 30,Reps: { fontSize: 40,top: 50,});``` 在您的样本中充满了 NA。它有任何有效数据吗?

我怀疑你需要 year(weather4$valid) 你正在给它管道 weather4 所以你通常只需要 year(valid) ......

假设 valid 中有日期?

现在如果它...它也认为它是根据表格判断的字符,因此您需要将其更改为“日期”或日期时间。

所以我建议:

weather4$valid

您可能希望执行一次并通过管道传输结果...